; Racetrack.txt (list5) Assemble as R.DAT
;
; Racetrack & floorpointer tables for grange murder.
;
npcinitial
list5
; first we have a dummy entry for npc 0
; this is used as some pointers to the *other*
; things which are used in this list
; (the equivalent of this area in list6 is used for temp workspace)
;
 dc.w floorpointers-npcinitial
 dc.w racetracks-npcinitial
 dc.w reversaltable-npcinitial
 dc.w distractions-npcinitial
;
; For greed agression, timidity, obediance, there
; is a special case - if one of the values is 255, then
; the npc will always choose that one, if it is possible
; This is particularly useful for slaves etc.
; Note that npcs will still respond to attacks etc. - 
; anything which sets the 'attention flag'

FRIENDLY EQU 0
dodge equ 0
damage equ 0
; now the npc tables themselves...
defaultmale equ 3410
defaultfemale equ 3420
defaultanimal equ 3400
; npc 0 has dummy entry used as pointers above

; dc.b enemy, dodge, attack, hit points, obedience, patience, gold-sing
; if bit 7 of the "enemy" byte is set, the npc will be inactive
; until it meets Lancelot
inactive equ $80
disabled equ $40 ; set for npc's in part 2

 dc.b friendly,dodge,35,100,3,1 ;;0		; 1 USER
 dc.w defaultmale ; standard singing

 dc.b friendly,dodge,10,100,255,1	; 2 Sue
 dc.w 3700

 dc.b friendly,dodge,10,100,255,1	; 3 Vera
 dc.w 3700

 dc.b friendly,dodge,10,100,255,1	; 4 Kathy
 dc.w 3700

 dc.b friendly,dodge,10,100,255,1	; 5 Anthony
 dc.w 3700

 dc.b friendly,dodge,10,100,255,1	; 6 William
 dc.w 3700

 dc.b friendly,dodge,10,100,255,1	; 7 Robert
 dc.w 3700

 dc.b friendly,dodge,10,100,255,1	; 8 Fiona
 dc.w 3700

 dc.b friendly,dodge,10,100,255,1	; 9 Cliford
 dc.w 3700

 dc.b friendly,dodge,10,100,255,1	;10 Joarvis
 dc.w 3700

 dc.b friendly,dodge,10,100,255,1	;11 Inspector
 dc.w 3700

;---

floorpointers
; part of list5
; now 'floor pointers'
; there is one bye pair for each static room - the
; first byte gives the direction to go inwards
; and the second byte gives direction for going outwards
; (i.e. towards the synthesised grid)
;
; BIG WARNING
; all shapes must be simply connected. i.e. given a pair of rooms,
; you must be able to trace a path between them using only the
; OUT paths of one OR the other.
; This is because of the way the follow and GO code works.
north equ 1
east equ 3
south equ 5
west equ 7
up equ 2
down equ 4
west2 equ 6
east2 equ 8
north2 equ 14
south2 equ 15

 dc.b 0 ; room 0 (not used)
 dc.b 0 ; room 1 (not used)
 dc.b 0 ; 2
 dc.b north ; 3 arrival room
 dc.b 0 ; 4
 dc.b east ; 5 front left garden
 dc.b 0 ; 6
 dc.b 0 ; 7
 dc.b 0 ; 8
 dc.b 0 ; 9
 dc.b 0 ; 10
 dc.b 0 ; 11
 dc.b 0 ; 12
 dc.b 0 ; 13
 dc.b 0 ; 14
 dc.b 0 ; 15
 dc.b 0 ; 16
 dc.b 0 ; 17
 dc.b 0 ; 18
 dc.b 0 ; 19
 dc.b 0 ; 20
 dc.b 0 ; 21
 dc.b 0 ; 22
 dc.b 0 ; 23
 dc.b 0 ; 24
 dc.b 0 ; 25
 dc.b 0 ; 26
 dc.b 0 ; 27
 dc.b 0 ; 28
 dc.b 0 ; 29
 dc.b 0 ; 30
 dc.b 0 ; 31
 dc.b 0 ; 32
 dc.b 0 ; 33
 dc.b 0 ; 34
 dc.b 0 ; 35
 dc.b west ; 36 lawn+bushes
 dc.b west ; 37 shed
 dc.b south ; 38 drive
 dc.b west ; 39 front right garden
 dc.b south ; 40 right side garden
 dc.b 0 ; 41 back left garden
 dc.b south ; 42 back right garden
 dc.b west ; 43 lawn
 dc.b south ; 44 left side garden
 dc.b 0 ; 45 archway (ROOTROOM)
 dc.b south ; 46 back left garden
 dc.b south ; 47 front of house
 dc.b east ; 48 back of house
 dc.b south ; 49 n. drive
 dc.b west ; 50 gatehouse
 dc.b south ; 51 g.h. landing
 dc.b west ; 52 g.h bathroom
 dc.b east ; 53 g.h. bedroom
 dc.b 0 ; 54
 dc.b 0 ; 55
 dc.b 0 ; 56
 dc.b 0 ; 57
 dc.b 0 ; 58
 dc.b south ; 59 sir roberts shit-house
 dc.b 0 ; 60
 dc.b east ; 61 wc
 dc.b west ; 62 wc
 dc.b north ; 63 wc
 dc.b west2 ; 64 cloak room
 dc.b west ; 65 wc
 dc.b 0 ; 66
 dc.b 0 ; 67
 dc.b 0 ; 68
 dc.b east ; 69 secret stairs
 dc.b 0 ; 70
 dc.b west2 ; 71 ne corridor
 dc.b north ;; west ; 72 se corridor
 dc.b 0 ; 73
 dc.b east2 ; 74 nw corridor
 dc.b 0 ; 75
 dc.b west ; 76 corridor
 dc.b south ; 77 dining room
 dc.b north ; 78 larder
 dc.b east ; 79 drawing room
 dc.b west ; 80 kitchen
 dc.b south ; 81 study
 dc.b north ; 82 scullery
 dc.b south ; 83 hall
 dc.b down ; 84 landing
 dc.b west ; 85 games room
 dc.b south ; 86 entrance
 dc.b 0 ; 87 WC
 dc.b east ; 88 library
 dc.b 0 ; 89
 dc.b south ; 90 blue bedroom
 dc.b south ; 91 brown bedroom
 dc.b east ; 92 bamboo bedroom
 dc.b south ; 93 green bedroom
 dc.b north ; 94 master bedroom
 dc.b east ; 95 dressing room
 dc.b east ; 96 corridor
 dc.b north ; 97 oriental bedroom
 dc.b 0 ; 98
 dc.b 0 ; 99
;---
;
; Floorpointers+100...
;
; List of breaks or shortcuts that defy the floorpointers, mainly 
; occuring when there is a loop...
;
; DEST,ROOM,DIR to go in
floorptrbreaks
; Back Left Garden 46 to Back of House 48
 dc.b 48,46,3 ;e
; study 81 to drawing room 79
 dc.b 79,81,5 ;s
; library 88 to drawing room 79
 dc.b 79,88,1 ;n
; scullery 82 to right garden 40
 dc.b 40,82,3 ;e
; secret stairs 69 to ne corridor 71
 dc.b 71,69,14 ;n#2
; secret stairs 69 to bathroom 63
 dc.b 63,69,15 ;s#2
; dressing room 95 to bamboo bedroom 92
 dc.b 92,95,6 ;w#2
; blue bedroom 90 to green bedroom 93
 dc.b 93,90,3 ;e
; dining room 77 to study 81
 dc.b 81,77,7 ;w
; se corridor 72 to bathroom 63
 dc.b 63,72,1 ;n
;
 dc.b 0,0,0
;---
; Table of rooms where player is led to if he's at the 
; scene of a murder...
;
; Format: Message No, Room, Direction of entry
;
wifephoned equ 2500 ; said, "Sam, your wife's on the 'phone"
kidphoned equ 2501 ; said, "Your child's on the 'phone, Sam"
secretaryphoned equ 2502 ; said, "Your secretary's on the 'phone, Sam"
; 2530 is ' and listened' (bolted onto "ACTOR ANSWERED THE 
; TELEPHONE")
;
 even
;
distractions
; phone calls from home
 dc.w wifephoned
 dc.b 86,1
 dc.w wifephoned
 dc.b 86,1
 dc.w wifephoned
 dc.b 86,1
 dc.w wifephoned
 dc.b 86,1
 dc.w kidphoned
 dc.b 86,1
 dc.w wifephoned
 dc.b 86,1
 dc.w wifephoned
 dc.b 86,1
 dc.w kidphoned
 dc.b 86,1
 dc.w wifephoned
 dc.b 86,1
 dc.w wifephoned
 dc.b 86,1
;
; phone calls from office
 dc.w secretaryphoned
 dc.b 86,1
 dc.w secretaryphoned
 dc.b 86,1
 dc.w secretaryphoned
 dc.b 86,1
 dc.w secretaryphoned
 dc.b 86,1
 dc.w secretaryphoned
 dc.b 86,1
 dc.w secretaryphoned
 dc.b 86,1
 dc.w secretaryphoned
 dc.b 86,1
 dc.w secretaryphoned
 dc.b 86,1
 dc.w secretaryphoned
 dc.b 86,1
 dc.w secretaryphoned
 dc.b 86,1
;
; events at the manor
 dc.w 2510 ; said, "We think there's a prowler outside, Sam. 
; Could you help?"
 dc.b 43,5
 dc.w 2511 ; said, "The smoke detector's gone off in the 
; kitchen!"
 dc.b 80,3
 dc.w 2512 ; said, "Somebody at the door, Sam"
 dc.b 86,5
 dc.w 2513 ; said, "A couple of policemen to see you, Sam"
 dc.b 86,5
 dc.w 2514 ; said, "How are you, Sam"% %"Sorry!", said Sam, "I 
; must go to the bathroom"
 dc.b 83,7 ; THIS MUST BE 83, AS SAM IS LEAVING THE DOWNSTAIRS LOO!
 dc.w 2515 ; said, "Your car lights are on, Sam"
 dc.b 45,5
 dc.w 2516 ; said, "Aren't you goint to 'phone your office?"% %
; "Oh dear," said Sam, "I forgot"
 dc.b 86,1
 dc.w 2517 ; said, "Are you okay, Sam?"% %"No," replied Sam, "I think 
; I left the bath running this morning"
 dc.b 86,1
 dc.w 2518 ; said, "How's the car running?"% %"Oh dear!", said Sam, 
; "I forgot to lock it"
 dc.b 45,5
 dc.w 2519 ; said, "Is that a dog barking outside?"% %"Hmm, I'll go 
; and check," replied Sam
 dc.b 5,7
;
; Also, see racetracks 240-269
;
;---
USER EQU 1
Sue equ 2
Vera equ 3
Kathy equ 4
Anthony equ 5
William equ 6
Robert equ 7
Fiona equ 8
Clifford equ 9
Jarvis equ 10
Inspector equ 11
breadknife equ 20
pinnafore equ 80
wardrobe equ 90
chest equ 91
bed equ 92
chair equ 93
toilet equ 94
sink equ 95
footbath equ 96
table equ 97
sofa equ 98
stove equ 99
washer equ 100
window equ 101
beehive equ 102
fountain equ 103
bathtub equ 104
fridge equ 105
Telephone equ 110
doorbell equ 111
;
iNORTH equ 1
ivDOWN equ 10
ivUP equ 9
ivIN equ 11
iCROSS equ 13
iCLIMB equ 14
iJUMP equ 15
;
; Intransitive verbs..
iAGAIN equ 21
iLOOK equ 22
iINVENTORY equ 23
iQUIT equ 24
iRESTORE equ 25
iRAMSAVE equ 27
iRAMLOAD equ 28
iVERBOSE equ 30
iBRIEF equ 31
iNONE equ 32 ; description mode
iplay equ 33
ivON equ 34
ivOFF equ 35
iHELLO equ 205 ; >>fixed in g338
iOOPS equ 39
iATTACK equ 40
iSEARCH equ 42
iSMELL equ 44
;; iSIT equ 48 ;; Use FIND, then SIT animation for RTs 
; because we don't know the direction in which to sit upon 
; room objects if we're not in the displayed room! 
iSTAND equ 46
iSAY equ 50
iTELEPORT equ 51
iGETME equ 52
iSETupRUN equ 54
iSETupGO equ 58
iReportProblem equ 65
iSHOUT equ 73
ivTO equ 75
;
iHAVE equ 80 ; group of verbs for output..
iHAS equ 81
iAM equ 82
iARE equ 83
iIS equ 84
;
iGOin equ 87
iGOout equ 88
;
; goal-directed verbs
iWAITforPERSON equ 89
iWAITuntilTIME equ 90
iWAITforPERIOD equ 91
iWAIT equ 92 ; short wait
iPARSEwait equ 32 ; what the user gets when he types "wait"
iKILL equ 93
iDODGE equ 95
iGDgo equ 96 ; npcs use this
iGDrun equ 97
icheat equ 98
iBUY equ 99
;
; Transitive verbs..
iEXAMINE equ 100
iGET equ 104
iTAKE equ 105
iWEAR equ 106
iDROP equ 107
iPUT equ 108
iREMOVE equ 109
iTHROW equ 110
iGIVE equ 111
iASK equ 112
iTALK equ iASK * generic way of starting conversation
iFOLLOW equ 113
iOPEN equ 114
iEXTINGUISH equ 116
iPRESS equ 117
iDRESS equ 129
iCOLLECT equ 132
iRETURNobject equ 136 ; for npcs only
iSETUPfind equ 138
iGDfind equ 139
iCLOSE equ 115
iTELL equ 142 * redundant
iSTRUGGLE equ 144 * redundant
iSTEALallFROM equ 145 * redundant
iENTER equ 166 * redundant
;
; game specific..
iSCRATCH equ 170
iHIT equ 233 ;183
iCRUSH equ 186
iDEMOLISH equ 189
iAnswer equ 125
iDial equ 126
;
; Echo verbs also used for Y/N questions
ivNO equ 199 ;>>mike 26/8/88 - 200
ivYES equ 201
iWHY equ 213
;----
 even
racetracks
; sequences of commands which actors obey
; each is referred to by a 16-bit offset from the start of list5
; the initial sequences are contained in this table at the start..
;
; Pre Murder racetracks...
;
; Murder 1
 dc.w 0 ; 0
 dc.w 0 ; 1 - user
 dc.w SueRt1-list5 ; 2
 dc.w VeraRt1-list5 ; 3
 dc.w KathyRt1-list5 ; 4
 dc.w AnthonyRt1-list5 ; 5
 dc.w WilliamRt1-list5 ; 6
 dc.w RobertRt1-list5 ; 7
 dc.w FionaRt1-list5 ; 8
 dc.w CliffordRt1-list5 ; 9
 dc.w jarvisrt1-list5 ; 10
 dc.w InspectorRt1-list5 ; 11
;
; Murder 2
 dc.w 0 ; 12
 dc.w 0 ; 13
 dc.w SueRt2-list5 ; 14
 dc.w VeraRt2-list5 ; 15
 dc.w KathyRt2-list5 ; 16
 dc.w AnthonyRt2-list5 ; 17
 dc.w WilliamRt2-list5 ; 18
 dc.w RobertRt2-list5 ; 19
 dc.w FionaRt2-list5 ; 20
 dc.w CliffordRt2-list5 ; 21
 dc.w jarvisrt2-list5 ; 22
 dc.w InspectorRt2-list5 ; 23
;
; Murder 3
 dc.w 0 ; 24
 dc.w 0 ; 25
 dc.w SueRt3-list5 ; 26
 dc.w VeraRt3-list5 ; 27
 dc.w KathyRt3-list5 ; 28
 dc.w AnthonyRt3-list5 ; 29
 dc.w WilliamRt3-list5 ; 30
 dc.w RobertRt3-list5 ; 31
 dc.w FionaRt3-list5 ; 32
 dc.w CliffordRt3-list5 ; 33
 dc.w jarvisrt3-list5 ; 34
 dc.w InspectorRt3-list5 ; 35
;
; Murder 4
 dc.w 0 ; 36
 dc.w 0 ; 37
 dc.w SueRt4-list5 ; 38
 dc.w VeraRt4-list5 ; 39
 dc.w KathyRt4-list5 ; 40
 dc.w AnthonyRt4-list5 ; 41
 dc.w WilliamRt4-list5 ; 42
 dc.w RobertRt4-list5 ; 43
 dc.w FionaRt4-list5 ; 44
 dc.w CliffordRt4-list5 ; 45
 dc.w jarvisrt4-list5 ; 46
 dc.w InspectorRt4-list5 ; 47
;
; Murder 5
 dc.w 0 ; 48
 dc.w 0 ; 49
 dc.w SueRt5-list5 ; 50
 dc.w VeraRt5-list5 ; 51
 dc.w KathyRt5-list5 ; 52
 dc.w AnthonyRt5-list5 ; 53
 dc.w WilliamRt5-list5 ; 54
 dc.w RobertRt5-list5 ; 55
 dc.w FionaRt5-list5 ; 56
 dc.w CliffordRt5-list5 ; 57
 dc.w jarvisrt5-list5 ; 58
 dc.w InspectorRt5-list5 ; 59
;
; Murder 6
 dc.w 0 ; 60
 dc.w 0 ; 61
 dc.w SueRt6-list5 ; 62
 dc.w VeraRt6-list5 ; 63
 dc.w KathyRt6-list5 ; 64
 dc.w AnthonyRt6-list5 ; 65
 dc.w WilliamRt6-list5 ; 66
 dc.w RobertRt6-list5 ; 67
 dc.w FionaRt6-list5 ; 68
 dc.w CliffordRt6-list5 ; 69
 dc.w jarvisrt6-list5 ; 70
 dc.w InspectorRt6-list5 ; 71
;
; Murder 7
 dc.w 0 ; 72
 dc.w 0 ; 73
 dc.w SueRt7-list5 ; 74
 dc.w VeraRt7-list5 ; 75
 dc.w KathyRt7-list5 ; 76
 dc.w AnthonyRt7-list5 ; 77
 dc.w WilliamRt7-list5 ; 78
 dc.w RobertRt7-list5 ; 79
 dc.w FionaRt7-list5 ; 80
 dc.w CliffordRt7-list5 ; 81
 dc.w jarvisrt7-list5 ; 82
 dc.w InspectorRt7-list5 ; 83
;
; Murder 8
 dc.w 0 ; 84
 dc.w 0 ; 85
 dc.w SueRt8-list5 ; 86
 dc.w VeraRt8-list5 ; 87
 dc.w KathyRt8-list5 ; 88
 dc.w AnthonyRt8-list5 ; 89
 dc.w WilliamRt8-list5 ; 90
 dc.w RobertRt8-list5 ; 91
 dc.w FionaRt8-list5 ; 92
 dc.w CliffordRt8-list5 ; 93
 dc.w jarvisrt8-list5 ; 94
 dc.w InspectorRt8-list5 ; 95
;
; Murder 9
 dc.w 0 ; 96
 dc.w 0 ; 97
 dc.w SueRt9-list5 ; 98
 dc.w VeraRt9-list5 ; 99
 dc.w KathyRt9-list5 ; 100
 dc.w AnthonyRt9-list5 ; 101
 dc.w WilliamRt9-list5 ; 102
 dc.w RobertRt9-list5 ; 103
 dc.w FionaRt9-list5 ; 104
 dc.w CliffordRt9-list5 ; 105
 dc.w jarvisrt9-list5 ; 106
 dc.w InspectorRt9-list5 ; 107
;
 dc.w 0
 dc.w 0
;
; Jarvis answers door to greet npc, using racetrack 110+npc
 dc.w JarvisInitial-list5 ; 110 used in between guests arriving
 dc.w JarvisAnswerDoor-list5 ; 111
 dc.w JarvisGreetsSueRt-list5 ; 112
 dc.w JarvisAnswerDoor-list5 ; 113
 dc.w JarvisGreetsKathyRt-list5 ; 114
 dc.w JarvisGreetsAnthonyRt-list5 ; 115
 dc.w JarvisAnswerDoor-list5 ; 116
 dc.w JarvisAnswerDoor-list5 ; 117
 dc.w JarvisAnswerDoor-list5 ; 118
 dc.w JarvisGreetsCliffordRt-list5 ; 119
 dc.w 0 ; 120 (jarvis himself!)
 dc.w JarvisAnswerDoor-list5 ; 121
;
 dc.w 0
 dc.w 0
 dc.w 0
 dc.w 0
 dc.w 0
 dc.w 0
 dc.w 0
 dc.w 0
;
; Post Murder racetracks...
;
; Murder 1
 dc.w 0 ; 130
 dc.w 0 ; 131 - user
 dc.w PMSueRt1-list5 ; 132
 dc.w PMVeraRt1-list5 ; 133
 dc.w PMKathyRt1-list5 ; 134
 dc.w PMAnthonyRt1-list5 ; 135
 dc.w PMWilliamRt1-list5 ; 136
 dc.w PMRobertRt1-list5 ; 137
 dc.w PMFionaRt1-list5 ; 138
 dc.w PMCliffordRt1-list5 ; 139
 dc.w PMjarvisrt1-list5 ; 140
 dc.w PMInspectorRt1-list5 ; 141
;
; Murder 2
 dc.w 0 ; 142
 dc.w 0 ; 143 - user
 dc.w PMSueRt1-list5 ; 144
 dc.w PMVeraRt1-list5 ; 145
 dc.w PMKathyRt1-list5 ; 146
 dc.w PMAnthonyRt1-list5 ; 147
 dc.w PMWilliamRt1-list5 ; 148
 dc.w PMRobertRt1-list5 ; 149
 dc.w PMFionaRt1-list5 ; 150
 dc.w PMCliffordRt1-list5 ; 151
 dc.w PMjarvisrt1-list5 ; 152
 dc.w PMInspectorRt1-list5 ; 153
;
; Murder 3
 dc.w 0 ; 154
 dc.w 0 ; 155 - user
 dc.w PMSueRt1-list5 ; 156
 dc.w PMVeraRt1-list5 ; 157
 dc.w PMKathyRt1-list5 ; 158
 dc.w PMAnthonyRt1-list5 ; 159
 dc.w PMWilliamRt1-list5 ; 160
 dc.w PMRobertRt1-list5 ; 161
 dc.w PMFionaRt1-list5 ; 162
 dc.w PMCliffordRt1-list5 ; 163
 dc.w PMjarvisrt1-list5 ; 164
 dc.w PMInspectorRt1-list5 ; 165
;
; Murder 4
 dc.w 0 ; 166
 dc.w 0 ; 167 - user
 dc.w PMSueRt1-list5 ; 168
 dc.w PMVeraRt1-list5 ; 169
 dc.w PMKathyRt1-list5 ; 170
 dc.w PMAnthonyRt1-list5 ; 171
 dc.w PMWilliamRt1-list5 ; 172
 dc.w PMRobertRt1-list5 ; 173
 dc.w PMFionaRt1-list5 ; 174
 dc.w PMCliffordRt1-list5 ; 175
 dc.w PMjarvisrt1-list5 ; 176
 dc.w PMInspectorRt1-list5 ; 177
;
; Murder 5
 dc.w 0 ; 178
 dc.w 0 ; 179 - user
 dc.w PMSueRt1-list5 ; 180
 dc.w PMVeraRt1-list5 ; 181
 dc.w PMKathyRt1-list5 ; 182
 dc.w PMAnthonyRt1-list5 ; 183
 dc.w PMWilliamRt1-list5 ; 184
 dc.w PMRobertRt1-list5 ; 185
 dc.w PMFionaRt1-list5 ; 186
 dc.w PMCliffordRt1-list5 ; 187
 dc.w PMjarvisrt1-list5 ; 188
 dc.w PMInspectorRt1-list5 ; 189
;
; Murder 6
 dc.w 0 ; 190
 dc.w 0 ; 191 - user
 dc.w PMSueRt1-list5 ; 192
 dc.w PMVeraRt1-list5 ; 193
 dc.w PMKathyRt1-list5 ; 194
 dc.w PMAnthonyRt1-list5 ; 195
 dc.w PMWilliamRt1-list5 ; 196
 dc.w PMRobertRt1-list5 ; 197
 dc.w PMFionaRt1-list5 ; 198
 dc.w PMCliffordRt1-list5 ; 199
 dc.w PMjarvisrt1-list5 ; 200
 dc.w PMInspectorRt1-list5 ; 201
;
; Murder 7
 dc.w 0 ; 202
 dc.w 0 ; 203 - user
 dc.w PMSueRt1-list5 ; 204
 dc.w PMVeraRt1-list5 ; 205
 dc.w PMKathyRt1-list5 ; 206
 dc.w PMAnthonyRt1-list5 ; 207
 dc.w PMWilliamRt1-list5 ; 208
 dc.w PMRobertRt1-list5 ; 209
 dc.w PMFionaRt1-list5 ; 210
 dc.w PMCliffordRt1-list5 ; 211
 dc.w PMjarvisrt1-list5 ; 212
 dc.w PMInspectorRt1-list5 ; 213
;
; Murder 8
 dc.w 0 ; 214
 dc.w 0 ; 215 - user
 dc.w PMSueRt1-list5 ; 216
 dc.w PMVeraRt1-list5 ; 217
 dc.w PMKathyRt1-list5 ; 218
 dc.w PMAnthonyRt1-list5 ; 219
 dc.w PMWilliamRt1-list5 ; 220
 dc.w PMRobertRt1-list5 ; 221
 dc.w PMFionaRt1-list5 ; 222
 dc.w PMCliffordRt1-list5 ; 223
 dc.w PMjarvisrt1-list5 ; 224
 dc.w PMInspectorRt1-list5 ; 225
;
; Murder 9
 dc.w 0 ; 226
 dc.w 0 ; 227 - user
 dc.w PMSueRt1-list5 ; 228
 dc.w PMVeraRt1-list5 ; 229
 dc.w PMKathyRt1-list5 ; 230
 dc.w PMAnthonyRt1-list5 ; 231
 dc.w PMWilliamRt1-list5 ; 232
 dc.w PMRobertRt1-list5 ; 233
 dc.w PMFionaRt1-list5 ; 234
 dc.w PMCliffordRt1-list5 ; 235
 dc.w PMjarvisrt1-list5 ; 236
 dc.w PMInspectorRt1-list5 ; 237
;
 dc.w 0
 dc.w 0
;
; special 'distraction' racetracks used once player has 
; been led to the room of the distraction
;
; phone calls from home
 dc.w distract0-list5 ; 240
 dc.w distract1-list5 ; 241
 dc.w distract2-list5 ; 242
 dc.w distract3-list5 ; 243
 dc.w distract4-list5 ; 244
 dc.w distract5-list5 ; 245
 dc.w distract6-list5 ; 246
 dc.w distract7-list5 ; 247
 dc.w distract8-list5 ; 248
 dc.w distract9-list5 ; 249
;
; phone calls from office
 dc.w distract10-list5 ; 250
 dc.w distract11-list5 ; 251
 dc.w distract12-list5 ; 252
 dc.w distract13-list5 ; 253
 dc.w distract14-list5 ; 254
 dc.w distract15-list5 ; 255
 dc.w distract16-list5 ; 256
 dc.w distract17-list5 ; 257
 dc.w distract18-list5 ; 258
 dc.w distract19-list5 ; 259
;
; events at the manor
 dc.w distract20-list5 ; 260
 dc.w distract21-list5 ; 261
 dc.w distract22-list5 ; 262
 dc.w distract23-list5 ; 263
 dc.w distract24-list5 ; 264
 dc.w distract25-list5 ; 265
 dc.w distract26-list5 ; 266
 dc.w distract27-list5 ; 267
 dc.w distract28-list5 ; 268
 dc.w distract29-list5 ; 269
;
StartRt
; each of the race track entries has a 4-byte entry:
; VERB PREP NOUN1 NOUN2
ipin equ 7
ipwith equ 16

drop equ 107
attack equ 40
open equ 114
go equ 96 ; go to room noun1 (=setupgo)
close equ 115
wait equ 92
examine equ 100
take equ 105
give equ 111
eat equ 123
find equ 139
kill equ 93
waitforpersontoleave equ 94
waitforperson equ 89
waituntiltime equ 90
waitforperiod equ 91
Wwaitforperiod equ waitforperiod*256
put equ 108
returnobject equ 136
gdfind equ 139
light equ 165
ride equ  185
stand equ 46
lie equ 47
drink equ 60
wear equ 106
remove equ 109

LocalMove equ 143 ; localmove,0,cellx,cellz

FaceNoun1 equ 245 ; face object/person Noun1

Animate equ 246 ; animate,numframes,sequence.w

; animation sequences...
StandingAnimation equ 2510
ReachLeftAnimation equ 2520 ; reach with left hand
ReachRightAnimation equ 2530 ; reach with right hand
SitAnimation equ 2540 ; sit animation
ReachUpAnimation equ 2550 ; reach up
ReachDownAnimation equ 2560 ; reach down
StandUpAnimation equ 2570 ; stand up
KissAnimation equ 2530
ReadAnimation equ 2580 ; sat down, reading book/paper etc.
PoolAnimation equ 2530 ; shoot with snooker cue (maybe pick it 
; up first from rack under table and replace it afterwards)
PickUpPhone equ 2740
DropPhone equ 2742

Conditional equ 247
RConditional equ 250 ; RConditional,0,ROOM,null
; noun1 variants for special conditionals
jarvisphonedpolice equ 240 ; TRUE once jarvis has phoned the police
isroomemptyexceptuser equ 250 ; TRUE when room is empty except for 
; Actor and User
random equ 251 ; TRUE if random(255) AND noun2=prep
; noun2 MUST be of 3,7,15,31,63 etc.
; NB: if prep>250, then  use actor*(prep-250)
readyformurder equ 252 ; TRUE when murder sequence is to begin
dinnerisready equ 253 ; TRUE when dinner is ready
dinnerisserved equ 254 ; TRUE when all guests have arrived for dinner
isroomempty equ 255 ; TRUE when room is empty except for Actor

ActorVaryMessage equ 248 ; goes straight on in same turn to next step in rt
WRtActorVaryMessage equ ActorVaryMessage*256

ActorSingleMessage equ 249 ; this completes actor's turn. Like ActorM1Dot
WActorSingleMessage equ ActorSingleMessage*256

racetrackmessage equ 251
WRtMessage equ racetrackMessage*256

racetrackgosub equ 253
WRtGosub equ racetrackGosub*256

racetrackgoto equ 254
WRTgoto equ racetrackGoto*256

racetrackreturn equ 255

; nouns...
people equ 237
everything equ 234
nullobject equ 255

; prepositions...
to equ 202
; note that:
;
; NOUN1 will always be searched for if not accessible
; to the verb (using the usual accessability rules)
;
; NOUN2 will normally be searched for using the same rules.
; There are situations where this is awkward - so if the
; preposition is WITH, then NOUN2 must be carried (or it will
; be searched for by the npc).
;
;---
rtmess equ 5000
rtmess1 equ 5000
dmess equ 2600
debugmarker equ 4999
;---
;
;-------------------------------------------------------------------------
; MURDER 1
;-------------------------------------------------------------------------
;
; BEFORE DINNER...
;
;---
SueRt1
 dc.b waitforpersontoleave,0,fiona,nullobject
 dc.w WWaitForPeriod,500
 dc.w WRtGosub,SueArrivesrt-list5
 dc.w WWaitForPeriod,10
; Trigger Jarvis to start his proper racetrack...
 dc.w WRtMessage,rtmess+259 ; "I think everybody's here now", said 
; Jarvis
 dc.w WRtGosub,SueUnpacks-list5
 dc.w WwaitForPeriod,50
;
 dc.w WRtGosub,suevisitsvera-list5
;; dc.w WRtGosub,suevisitsrobert-list5
;; dc.b go,0,94,nullobject ; make sure we don't go via secret door
;
; go back to bedroom
suegetschanged
;
; Dinner is almost ready (Messages 3000-9 are used to trigger 
; dinner racetracks).
;
 dc.w Wwaitforperiod,30
 dc.w WRtMessage,rtmess+3000 ; "I'm going to get ready for dinner," 
; said Sue
;
 dc.b go,0,92,nullobject
 dc.b find,0,bed,nullobject ;; GMJ 25/9/89 ;;  dc.b localmove,0,3,9 ; go bed
 dc.w WRtMessage,rtmess+1200 ; Sue sat down, slightly irritated
 dc.b animate,3
 dc.w SitAnimation+5 ; sit south
 dc.w Wwaitforperiod,30
 dc.w WRtMessage,rtmess+1201 ; "Looks like it's going to be a disaster," 
; sighed Sue
 dc.w Wwaitforperiod,30
 dc.w WRtMessage,rtmess+1202 ; "I mean," continued Sue, "look at the 
; way everyone's arguing"
 dc.w Wwaitforperiod,30
 dc.w WRtMessage,rtmess+1203 ; "Ah, well", sighed Sue, "I'd better get 
; ready for dinner
 dc.w Wwaitforperiod,20
 dc.b animate,1
 dc.w StandUpAnimation+5 ; stand up south
 dc.b open,0,wardrobe,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,8,7 ; go wardrobe
 dc.w WRtMessage,rtmess+1204 ; Sue fumbled about in the wardrobe
 dc.b animate,3
 dc.w ReachLeftAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w ReachRightAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w ReachUpAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+1205 ; "Now, what shall I wear?", said Sue
 dc.b animate,3
 dc.w ReachLeftAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w ReachRightAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w ReachUpAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
;
; Sue is about to be murdered (Messages 3010-19 are used to trigger 
; each murder).
;
 dc.w WRtMessage,rtmess+3010 ; "Now where is that dress?", quizzed 
; Sue.
;
; When the murder is triggered, the user is taken away on a "distraction", 
; hence there is no need for any further messages
;
 dc.b racetrackreturn,0,nullobject,nullobject
;---
VeraRt1
 dc.w WRtGosub,verainkitchen-list5
;
; stay in kitchen until sue is ready to be murdered (when dinner is almost 
; ready)
 dc.b conditional,0,readyformurder,nullobject
 dc.w WRtGoto,VeraMurdersSue-list5
 dc.w WRtGoto,VeraRt1-list5
;
VeraMurdersSue
; the 'secret route' used by vera will contradict the floorpointers, 
; so we must make each individual move...
;
 dc.b go,0,82,nullobject ;  scullery
 dc.b go,0,69,nullobject ; secret stairs
 dc.b go,0,63,nullobject ; bathroom
 dc.b go,0,72,nullobject ; se corridor
 dc.b go,0,94,nullobject ; master bedroom
 dc.b go,0,95,nullobject ; dressing room
 dc.b go,0,92,nullobject ; sue's bedroom
;
; Messages 3030-39 are intercepted to confirm that the murder has 
; taken place. All npc's are then given a new 'post-murder' racetrack. 
;
 dc.w WRtMessage,rtmess+3030 ; <Sue screams>
 dc.b racetrackreturn,0,nullobject,nullobject
;---
KathyRt1
 dc.w WRtGosub,kathyarrivesrt-list5
 dc.w WRtGosub,KathyUnpacks-list5
 dc.w WwaitForPeriod,50
;
 dc.w WRtGosub,kathyvisitsrobert-list5
 dc.w WRtGosub,kathyvisitsvera-list5
 dc.w WRtGosub,toiletrt-list5
;
; activities just before dinner
KathyWaitForDinner
 dc.b conditional,0,dinnerisready,nullobject
 dc.w WRtGoto,KathyDinner-list5 ; go to dinner
 dc.w WRtGosub,libraryrt-list5
 dc.b conditional,0,dinnerisready,nullobject
 dc.w WRtGoto,KathyDinner-list5 ; go to dinner
 dc.w WRtGosub,drawingrt-list5
 dc.b conditional,0,dinnerisready,nullobject
 dc.w WRtGoto,KathyDinner-list5 ; go to dinner
 dc.w WRtGosub,studyrt-list5
 dc.w WRtGoto,KathyWaitForDinner-list5
;
; kathy goes to dinner
kathydinner
 dc.w WRtGoto,KathyPreDinner-list5 ; wait until all guests arrive for 
; dinner
;
 dc.b racetrackreturn,0,nullobject,nullobject
;---
AnthonyRt1
 dc.b waitforpersontoleave,0,william,nullobject
 dc.w WWaitForPeriod,500
 dc.w WRtGosub,Anthonyarrivesrt-list5
 dc.w WRtGosub,AnthonyUnpacks-list5
 dc.w WwaitForPeriod,50
;
anthonymeetswilliam
 dc.b ifollow,0,william,nullobject ; find william
 dc.b RConditional,0,85,nullobject ; stop following william in games room
 dc.w WRtGoto,anthonyplayspool-list5
 dc.b conditional,0,random,3
 dc.w WRtActorVaryMessage,rtmess+1000
; cracked a joke with William
; chatted with William
; said, "How's work, William"
; talked business with william
; chatted to William about his Journey
 dc.w WRtGoto,anthonymeetswilliam-list5
;
; play pool with william
anthonyplayspool
 dc.b find,0,william,nullobject ; used to synchronise timing
 dc.w WRtGosub,Player1PlaysPool-list5
 dc.b conditional,0,dinnerisready,nullobject
 dc.w WRtGoto,AnthonyDinner-list5 ; go to dinner
 dc.w WRtMessage,rtmess+1111 ; "I'll beat you this time," said Anthony
 dc.b find,0,anthony,nullobject ; used to synchronise timing
 dc.w WRtGosub,Player2PlaysPool-list5
 dc.b conditional,0,dinnerisready,nullobject
 dc.w WRtGoto,AnthonyDinner-list5 ; go to dinner
 dc.w WRtMessage,rtmess+1112 ; "Fluke!", laughed William. "You won't 
; beat me again!" 
 dc.w WRtGoto,anthonyplayspool-list5
;
; anthony gets changed before dinner
AnthonyDinner
 dc.w WRtMessage,rtmess1+1120 ; "I'd better get changed for dinner," 
; said Anthony
 dc.b go,0,97,nullobject
 dc.b open,0,wardrobe,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,12,5 ; go wardrobe
anthonychanging
 dc.w WRtMessage,rtmess1+1121 ; Anthony searched through his wardrobe
 dc.b animate,3
 dc.w ReachLeftAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w ReachRightAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w ReachUpAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess1+1122 ; "Hmm, where's my trousers," said Anthony
 dc.b animate,3
 dc.w ReachLeftAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w ReachRightAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w ReachUpAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess1+1123 ; "Now which tie should I wear," pondered 
; Anthony
 dc.b animate,3
 dc.w ReachLeftAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w ReachRightAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w ReachUpAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.w WRtGoto,anthonychanging-list5
;---
WilliamRt1
 dc.w WRtGosub,williamarrivesrt-list5
 dc.w WRtGosub,williamUnpacks-list5
 dc.w WwaitForPeriod,50
;
 dc.w WRtGosub,studyrt-list5
 dc.w WRtGosub,rightgardenviasculleryrt-list5 ; anthony joins around here
 dc.w WRtGosub,drawingrt-list5
 dc.b go,0,85,nullobject ; go games room
 dc.b waitforperson,0,anthony,nullobject
;
; play pool with anthony
williamplayspool
 dc.b find,0,anthony,nullobject ; used to synchronise timing
 dc.w WRtGosub,Player2PlaysPool-list5
 dc.b conditional,0,dinnerisready,nullobject
 dc.w WRtGoto,WilliamDinner-list5 ; go to dinner
 dc.b wait,0,nullobject,nullobject ; dummy while anthony speaks
 dc.b find,0,anthony,nullobject ; used to synchronise timing
 dc.w WRtGosub,Player1PlaysPool-list5
 dc.b conditional,0,dinnerisready,nullobject
 dc.w WRtGoto,WilliamDinner-list5 ; go to dinner
 dc.b wait,0,nullobject,nullobject ; dummy while anthony speaks
 dc.w WRtGoto,williamplayspool-list5
;
; william goes to dinner
williamdinner
 dc.w WRtGoto,WilliamPreDinner-list5 ; wait until all guests arrive for 
; dinner
;
 dc.b racetrackreturn,0,nullobject,nullobject
;---
RobertRt1
 dc.w WRtGosub,robertinstudy-list5
 dc.b conditional,0,dinnerisready,nullobject
 dc.w WRtGoto,RobertDinner-list5 ; go to dinner
 dc.w WRtGoto,RobertRt1-list5
;
; robert goes to dinner
robertdinner
;; dc.b waitforpersontoleave,0,sue,nullobject
 dc.w WRtGoto,RobertPreDinner-list5 ; wait until all guests arrive for 
; dinner
;
 dc.b racetrackreturn,0,nullobject,nullobject
;---
FionaRt1
 dc.w WRtGosub,FionaArrivesrt-list5
 dc.w WRtGosub,fionaUnpacks-list5
 dc.w WwaitForPeriod,50
;
 dc.w WRtGosub,fionavisitsrobert-list5
;
; follow clifford & talk to him
fionameetsclifford
 dc.b conditional,0,kathy,nullobject ; if kathy is here, they 
 dc.w WRtActorVaryMessage,rtmess1+1150 ; 'bitch' each other
 dc.b ifollow,0,clifford,nullobject ; find clifford
; clifford's racetrack handles all arguing in the hall...
 dc.b Rconditional,0,83,nullobject
 dc.w WRtGoto,fionameetsclifford-list5
 dc.b conditional,1,random,3
 dc.w WRtActorVaryMessage,rtmess+1020
; began hen-pecking Clifford
; nagged Clifford
; said, "You haven't a smile for the cat, Clifford"
; said, "I wish you would pull your weight, Clifford"
; cursed Clifford for picking his nose
 dc.w WRtGoto,fionameetsclifford-list5
;---
CliffordRt1
 dc.b waitforpersontoleave,0,anthony,nullobject
 dc.w WWaitForPeriod,500
 dc.w WRtGosub,CliffordArrivesrt-list5
 dc.w WRtGosub,cliffordUnpacks-list5
 dc.w WwaitForPeriod,50
;
 dc.w WRtGosub,studyrt-list5
 dc.w WRtGosub,toiletrt-list5
;
; Clifford argues with fiona in the hall
cliffordargues
 dc.b go,0,83,nullobject ; go to hall
 dc.b waitforperson,0,fiona,nullobject ; (just in case)
cliffordargues1
 dc.b localmove,0,6,9 ; walk to front left of hall
 dc.w Wwaitforperiod,25
 dc.b FaceNoun1,0,fiona,nullobject ; face fiona
 dc.w WRtMessage,rtmess+1220 ; "Oh shut up, Fiona," snapped Clifford
 dc.w Wwaitforperiod,25
 dc.b FaceNoun1,0,fiona,nullobject ; face fiona
 dc.w WRtMessage,rtmess+1221 ; "I'll say what I please," replied Fiona
 dc.b localmove,0,15,9 ; walk to front right of hall
 dc.w Wwaitforperiod,25
 dc.b FaceNoun1,0,fiona,nullobject ; face fiona
 dc.w WRtMessage,rtmess+1222 ; "Just stop nagging me, wife," seethed 
; Clifford
 dc.w Wwaitforperiod,25
 dc.b FaceNoun1,0,fiona,nullobject ; face fiona
 dc.w WRtMessage,rtmess+1223 ; "I'll nag until you listen!", insisted 
; Fiona
 dc.b localmove,0,6,9 ; walk to front left of hall
 dc.w Wwaitforperiod,25
 dc.b FaceNoun1,0,fiona,nullobject ; face fiona
 dc.w WRtMessage,rtmess+1224 ; "Where are my earplugs?", said Clifford
 dc.w Wwaitforperiod,25
 dc.b FaceNoun1,0,fiona,nullobject ; face fiona
 dc.w WRtMessage,rtmess+1225 ; "Ooh, you're so rude, Clifford," seethed 
; Fiona
 dc.b localmove,0,15,9 ; walk to front right of hall
 dc.w Wwaitforperiod,25
 dc.b FaceNoun1,0,fiona,nullobject ; face fiona
 dc.w WRtMessage,rtmess+1226 ; "And your so damned annoying, woman," 
; replied Clifford
 dc.w Wwaitforperiod,25
 dc.b FaceNoun1,0,fiona,nullobject ; face fiona
 dc.w WRtMessage,rtmess+1227 ; "I haven't even started yet, Cliff," 
; snarled Fiona
 dc.b localmove,0,6,9 ; walk to front left of hall
 dc.w Wwaitforperiod,25
 dc.b FaceNoun1,0,fiona,nullobject ; face fiona
 dc.w WRtMessage,rtmess+1228 ; "What are we arguing about anyway?", 
; asked Clifford
 dc.w Wwaitforperiod,25
 dc.b FaceNoun1,0,fiona,nullobject ; face fiona
 dc.w WRtMessage,rtmess+1229 ; "I haven't a clue, dear," replied Fiona
 dc.w WRtGoto,cliffordargues1-list5
; 
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; Only triggered once all guests have arrived
JarvisRt1
; Jarvis prepares the dinner table until all guests arrive
 dc.w WRtGoto,JarvisPrepareTable-list5 ; go dining room & set table etc.
;---
InspectorRt1
 dc.b racetrackreturn,0,nullobject,nullobject
;---
;
; After the Murder...
;
;---
; sue is the victim
PMSueRt1
;; dc.b animate,1
;; dc.w ReachDownAnimation+3 ; reach down east 1 frame (dead)
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; vera retraces her steps back to the kitchen
PMVeraRt1
; the 'secret route' used by vera will contradict the floorpointers, 
; so directional verbs are used rather than 'go room' verbs...
;
 dc.b go,0,95,nullobject ; dressing room
 dc.b go,0,94,nullobject ; master bedroom
 dc.b go,0,72,nullobject ; se corridor
 dc.b go,0,63,nullobject ; bathroom
 dc.b go,0,69,nullobject ; secret stairs
 dc.b go,0,82,nullobject ;  scullery
 dc.b go,0,80,nullobject ; kitchen
;
; hang up pinnafore etc...
 dc.b find,0,table,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,12,7 ; walk to table
 dc.b animate,1
 dc.w StandingAnimation+1 ; face north
 dc.b drop,3,pinnafore,nullobject ; drop pinnafore on table (3 
; cells off ground)
;
; Messages 3079-9 are used when the murder sequence is complete, and 
; the guilty party has returned to whatever he or she was doing 
; before the murder...
;
; (This message shouldn't really be seen in theory, but just in 
; case...)
;
 dc.w WRtMessage,rtmess+3070 ; Vera looked around sheepishly
;
 dc.b waitforperson,0,jarvis,nullobject ; wait for jarvis to reveal the 
; murder 
 dc.b waitforpersontoleave,0,jarvis,nullobject ; wait until he's finished
 dc.w WRtGosub,PMRacetrack181-list5 ; general actions after the murder
;
 dc.b waitforpersontoleave,0,robert,nullobject
 dc.b go,0,80,nullobject ; go kitchen
 dc.w WRtGoto,PMRT1-list5 ; continue up post murder noise messages
;---
; kathy is in the dining room
PMKathyRt1
 dc.b waitforperson,0,fiona,nullobject ; fiona arrived when murder revealed
 dc.b waitforpersontoleave,0,robert,nullobject ; wait for Robert's to leave
 dc.w WRtGosub,PMRacetrack179-list5 ; general actions after the murder
;
 dc.b waitforpersontoleave,0,robert,nullobject
 dc.b go,0,93,nullobject ; go bedroom
 dc.w WRtGoto,PMRT1-list5 ; continue up post murder noise messages
;---
; anthony is getting changed
PMAnthonyRt1
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+4400 ; "Did you hear somebody scream?", said 
; Anthony
;
 dc.b go,0,84,nullobject ; walk to landing
 dc.b waitforperson,0,fiona,nullobject ; wait for clifford+fiona
 dc.w WRtMessage,rtmess+4401 ; "I think the noise came from Sue's 
; room," said Anthony to Clifford
 dc.w Wwaitforperiod,20
 dc.b localmove,0,2,9 ; walk to sue's door
 dc.w WRtMessage,rtmess+4402 ; "Sue?", shouted Anthony, "Are 
; you okay?"
 dc.b animate,3
 dc.w ReachleftAnimation+7 ; reach west
 dc.b animate,3
 dc.w ReachrightAnimation+7 ; reach west
 dc.b animate,3
 dc.w ReachleftAnimation+7 ; reach west
 dc.w WActorSingleMessage,rtmess+4403 ; Anthony forced open Sue's door
;
 dc.b go,0,92,nullobject ; go to sue's room 
 dc.w WRtMessage,rtmess+4404 ; "Sue?!", yelled Anthony
 dc.b facenoun1,0,sue,nullobject ; face sue
 dc.b animate,3
 dc.w ReachDownAnimation+7 ; reach west
 dc.b waitforperson,0,fiona,nullobject ; wait for fiona & clifford
 dc.w WRtMessage,rtmess+4405 ; "She's dead," said Anthony glumly
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+4406 ; "We'd better break it to the others," 
; said Anthony
;
 dc.b go,0,77,nullobject ; go dining room
;; dc.b find,0,robert,nullobject ; walk over to robert
 dc.w WRtMessage,rtmess+4408 ; "I'm afraid there's bad news," said 
; Anthony. "Sue's dead"
 dc.b find,0,table,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,5,9 ; walk to front left of table (to clear the doorway 
; for fiona & clifford)
 dc.b faceNoun1,0,robert,nullobject ; face the daft old cunt (robert)
 dc.b waitforperson,0,fiona,nullobject ; wait for fiona & clifford
 dc.b waitforpersontoleave,0,robert,nullobject ; wait for Robert's to leave
 dc.w WRtGosub,PMRacetrack181-list5 ; general actions after the murder
;
 dc.b waitforpersontoleave,0,robert,nullobject
 dc.b go,0,97,nullobject ; go bedroom
 dc.w WRtGoto,PMRT1-list5 ; continue up post murder noise messages
;---
; william is in the dining room
PMWilliamRt1
 dc.b waitforperson,0,fiona,nullobject ; fiona arrived when murder revealed
 dc.b waitforpersontoleave,0,robert,nullobject ; wait for Robert's to leave
 dc.w WRtGosub,PMRacetrack179-list5 ; general actions after the murder
;
 dc.b waitforpersontoleave,0,robert,nullobject
 dc.b go,0,93,nullobject ; go bedroom
 dc.w WRtGoto,PMRT1-list5 ; continue up post murder noise messages
;---
; robert is in the dining room
PMRobertRt1
 dc.b waitforpersontoleave,0,jarvis,nullobject ; wait for jarvis to leave
PMRobertRt11
 dc.b conditional,0,anthony,nullobject ; anthony arrives with bad news
 dc.w WRtGoto,PMRobertRt12-list5
 dc.b conditional,0,random,15
 dc.w WRtActorVaryMessage,rtmess+4600
; said, "Jarvis won't be long with dinner"
; said, "Dinner should be ready now"
; said, "I wonder where the others are?"
; said, "Sue's taking a long time in coming down"
; said, "I'm starving"
 dc.b wait,0,nullobject,nullobject
 dc.w WRtGoto,PMRobertRt11-list5
;
PMRobertRt12
 dc.b waitforperson,0,fiona,nullobject ; fiona arrived when murder revealed
 dc.w WRtMessage,rtmess+4610 ; "Dead?", yelled Sir Robert
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+4611 ; "Jarvis!", shouted Sir Robert, "Get 
; the police"
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+4612 ; "Everyone into the study," added Sir Robert
 dc.w WRtGosub,PMRacetrack181-list5 ; general actions after the murder
;
 dc.b go,0,79,nullobject ; go via drawing room
 dc.b go,0,94,nullobject ; go bedroom
 dc.w WRtGoto,PMRT1-list5 ; continue up post murder noise messages
;---
; fiona is arguing with clifford in the hall
PMFionaRt1
 dc.b ifollow,0,clifford,nullobject ; keep following clifford
 dc.b Rconditional,0,77,nullobject ; reached dining room?
 dc.w WRtGoto,PMFiona11-list5
 dc.w WRtGoto,PMFionaRt1-list5
;
PMFiona11
 dc.b waitforpersontoleave,0,robert,nullobject ; wait for Robert's to leave
 dc.w WRtGosub,PMRacetrack179-list5 ; general actions after the murder
;
 dc.b waitforpersontoleave,0,robert,nullobject
 dc.b go,0,91,nullobject ; go bedroom
 dc.w WRtGoto,PMRT1-list5 ; continue up post murder noise messages
;---
; clifford is arguing with fiona in the hall
PMCliffordRt1
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+4800 ; "Am I hearing things, or did someone 
; just scream upstairs?", pondered Clifford
 dc.b go,0,84,nullobject ; walk to landing
 dc.b waitforperson,0,anthony,nullobject ; wait for anthony
;
PMCFollowAnthony
 dc.b ifollow,0,anthony,nullobject ; keep following anthony
 dc.b Rconditional,0,77,nullobject ; reached dining room?
 dc.w WRtGoto,PMClifford11-list5
 dc.w WRtGoto,PMCFollowAnthony-list5
;
PMClifford11
 dc.b waitforpersontoleave,0,robert,nullobject ; wait for Robert's to leave
 dc.w WRtGosub,PMRacetrack179-list5 ; general actions after the murder
;
 dc.b waitforpersontoleave,0,robert,nullobject
 dc.b go,0,91,nullobject ; go bedroom
 dc.w WRtGoto,PMRT1-list5 ; continue up post murder noise messages
;---
; jarvis is in the dining room
PMJarvisRt1
; make sure jarvis gets to kitchen before vera, so that 
; he can testify against her
 dc.w WRtMessage,rtmess+4900 ; "I wonder how the dinner's doing?", said 
; Jarvis
 dc.b go,0,80,nullobject
 dc.w Wwaitforperiod,40
 dc.w WRtMessage,rtmess+4901 ; "Vera?", called Jarvis. "Where are you?"
;
 dc.b go,0,77,nullobject ; return to dining room
 dc.w Wwaitforperiod,20
 dc.b facenoun1,0,robert,nullobject ; face robert
 dc.w WRtMessage,rtmess+4902 ; "Has anyone seen Vera?", said Jarvis
 dc.b waitforperson,0,fiona,nullobject ; fiona arrives when murder revealed
 dc.w Wwaitforperiod,25 ; wait for Robert's instructions
;
 dc.w WRtGosub,JarvisGetPolice-list5
 dc.b go,0,80,nullobject ; go to kicthen
 dc.b waitforperson,0,vera,nullobject ; wait for vera
 dc.b find,0,vera,nullobject ; walk over to vera
 dc.w WRtMessage,rtmess+4903 ; "Where were you five minutes ago?", 
; Jarvis asked Vera
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+4904 ; "None of your business!", snapped Vera
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+4905 ; "Well you can explain that to the 
; others in the lounge," said Jarvis, "because there's been a murder..."
 dc.w Wwaitforperiod,20
 dc.w WRtGosub,PMRacetrack181-list5 ; general actions after the murder
;
 dc.b waitforpersontoleave,0,robert,nullobject
 dc.b go,0,53,nullobject ; go bedroom
 dc.w WRtGoto,PMRT1-list5 ; continue up post murder noise messages
;---
PMInspectorRt1
 dc.w WRtGosub,InspectorArrives-list5
PMIR1
 dc.b ifollow,0,robert,nullobject
 dc.b wait,0,nullobject,nullobject
 dc.w WRtGoto,PMIR1-list5
;
;-------------------------------------------------------------------------
; MURDER 2
;-------------------------------------------------------------------------
;
SueRt2
 dc.b waitforpersontoleave,0,anthony,nullobject
 dc.w WWaitForPeriod,500
 dc.w WRtGosub,SueArrivesrt-list5
 dc.w WRtGosub,SueUnpacks-list5
 dc.w WWaitForPeriod,50
;
 dc.w WRtGosub,drawingrt-list5 ; sue arrives around here
;
suemeetsanthony
 dc.b ifollow,0,anthony,nullobject ; find anthony
 dc.b RConditional,0,81,nullobject ; stop following anthony in study
 dc.w WRtGoto,suestopsfollowing-list5
 dc.b conditional,0,random,3
 dc.w WRtActorVaryMessage,rtmess+1010
; discussed the weather with Anthony
; chatted with Anthony
; talked casually with Anthony
; asked Anthony about his work
; talked about the manor
 dc.w WRtGoto,suemeetsanthony-list5
suestopsfollowing
;
 dc.b racetrackreturn,0,nullobject,nullobject
;---
VeraRt2
 dc.w WRtGosub,verainkitchen-list5
 dc.w WRtGoto,VeraRt2-list5
;---
KathyRt2
 dc.b waitforpersontoleave,0,fiona,nullobject
 dc.w WWaitForPeriod,500
 dc.w WRtGosub,KathyArrivesrt-list5
; Trigger Jarvis to start his proper racetrack...
 dc.w WRtMessage,rtmess+259 ; "I think everybody's here now", said 
; Jarvis
 dc.w WRtGosub,KathyUnpacks-list5
 dc.b racetrackreturn,0,nullobject,nullobject
;---
AnthonyRt2
 dc.w WRtGosub,AnthonyArrivesrt-list5
 dc.w WRtGosub,AnthonyUnpacks-list5
 dc.w Wwaitforperiod,50
;
 dc.w WRtGosub,AnthonyVisitsVera-list5 ; visit vera
 dc.w WRtGosub,drawingrt-list5 ; sue arrives around here
 dc.w WRtGosub,libraryrt-list5
 dc.w WRtGosub,studyrt-list5 ; sue leaves in study
;
 dc.b racetrackreturn,0,nullobject,nullobject
;---
WilliamRt2
 dc.w WRtGosub,WilliamArrivesrt-list5
 dc.w WRtGosub,WilliamUnpacks-list5
 dc.b racetrackreturn,0,nullobject,nullobject
;---
RobertRt2
 dc.w WRtGosub,robertinstudy-list5
 dc.b conditional,0,readyformurder,nullobject
 dc.w WRtGoto,RobertMurdersClifford-list5
 dc.w WRtGoto,RobertRt2-list5
;
RobertMurdersClifford
 dc.b go,0,94,nullobject ; make sure we're in robert's bedroom
 dc.w Wwaitforperiod,100 ; duration of 'BIG' argument
;
; Messages 3030-39 are intercepted to confirm that the murder has 
; taken place. All npc's are then given a new 'post-murder' racetrack. 
;
;; dc.w WRtMessage,rtmess+3031 ; <Clifford screams>
 dc.b racetrackreturn,0,nullobject,nullobject
;---
CliffordRt2
 dc.b waitforpersontoleave,0,sue,nullobject
 dc.w WWaitForPeriod,500
 dc.w WRtGosub,CliffordArrivesrt-list5
 dc.w WRtGosub,CliffordUnpacks-list5
 dc.w Wwaitforperiod,50
;
 dc.w WRtGosub,cliffordvisitsrobert-list5
;
; Clifford is about to be murdered (Messages 3010-19 are used to trigger 
; each murder).
;
 dc.w WRtMessage,rtmess+3011 ; Clifford told fiona to leave the room 
; while he had a chat with Robert
;
; When the murder is triggered, the user is taken away on a "distraction", 
; hence there is no need for any further messages
;
 dc.b go,0,94,nullobject ; make sure we're in robert's bedroom
 dc.b racetrackreturn,0,nullobject,nullobject
;---
FionaRt2
 dc.w WRtGosub,FionaArrivesrt-list5
 dc.w WRtGosub,FionaUnpacks-list5
 dc.w Wwaitforperiod,50
;
FionaFollowsClifford
 dc.b ifollow,0,clifford,nullobject
 dc.b conditional,0,readyformurder,nullobject ; ready for murder?
 dc.w WRtGoto,FionaStaysInStudy-list5
 dc.b wait,0,nullobject,nullobject
 dc.w WRtGoto,FionaFollowsClifford-list5
;
; fiona goes to robert's WC while the murder takes place
FionaStaysInStudy
 dc.b go,0,59,nullobject
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; Only triggered once all guests have arrived
jarvisRt2
 dc.w WRtGoto,JarvisPrepareTable-list5 ; go dining room & set table etc.
;---
InspectorRt2
 dc.b racetrackreturn,0,nullobject,nullobject
;---
;
;-------------------------------------------------------------------------
; MURDER 3
;-------------------------------------------------------------------------
;
SueRt3
 dc.b racetrackreturn,0,nullobject,nullobject
;---
VeraRt3
 dc.b racetrackreturn,0,nullobject,nullobject
;---
KathyRt3
 dc.b racetrackreturn,0,nullobject,nullobject
;---
AnthonyRt3
 dc.b racetrackreturn,0,nullobject,nullobject
;---
WilliamRt3
 dc.b racetrackreturn,0,nullobject,nullobject
;---
RobertRt3
 dc.b racetrackreturn,0,nullobject,nullobject
;---
FionaRt3
 dc.b racetrackreturn,0,nullobject,nullobject
;---
CliffordRt3
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; Only triggered once all guests have arrived
jarvisRt3
 dc.b racetrackreturn,0,nullobject,nullobject
;---
InspectorRt3
 dc.b racetrackreturn,0,nullobject,nullobject
;---
;
;-------------------------------------------------------------------------
; MURDER 4
;-------------------------------------------------------------------------
;
SueRt4
 dc.b racetrackreturn,0,nullobject,nullobject
;---
VeraRt4
 dc.b racetrackreturn,0,nullobject,nullobject
;---
KathyRt4
 dc.b racetrackreturn,0,nullobject,nullobject
;---
AnthonyRt4
 dc.b racetrackreturn,0,nullobject,nullobject
;---
WilliamRt4
 dc.b racetrackreturn,0,nullobject,nullobject
;---
RobertRt4
 dc.b racetrackreturn,0,nullobject,nullobject
;---
FionaRt4
 dc.b racetrackreturn,0,nullobject,nullobject
;---
CliffordRt4
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; Only triggered once all guests have arrived
jarvisRt4
 dc.b racetrackreturn,0,nullobject,nullobject
;---
InspectorRt4
 dc.b racetrackreturn,0,nullobject,nullobject
;---
;
;-------------------------------------------------------------------------
; MURDER 5
;-------------------------------------------------------------------------
;
SueRt5
 dc.b racetrackreturn,0,nullobject,nullobject
;---
VeraRt5
 dc.b racetrackreturn,0,nullobject,nullobject
;---
KathyRt5
 dc.b racetrackreturn,0,nullobject,nullobject
;---
AnthonyRt5
 dc.b racetrackreturn,0,nullobject,nullobject
;---
WilliamRt5
 dc.b racetrackreturn,0,nullobject,nullobject
;---
RobertRt5
 dc.b racetrackreturn,0,nullobject,nullobject
;---
FionaRt5
 dc.b racetrackreturn,0,nullobject,nullobject
;---
CliffordRt5
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; Only triggered once all guests have arrived
jarvisRt5
 dc.b racetrackreturn,0,nullobject,nullobject
;---
InspectorRt5
 dc.b racetrackreturn,0,nullobject,nullobject
;---
;
;-------------------------------------------------------------------------
; MURDER 6
;-------------------------------------------------------------------------
;
SueRt6
 dc.b racetrackreturn,0,nullobject,nullobject
;---
VeraRt6
 dc.b racetrackreturn,0,nullobject,nullobject
;---
KathyRt6
 dc.b racetrackreturn,0,nullobject,nullobject
;---
AnthonyRt6
 dc.b racetrackreturn,0,nullobject,nullobject
;---
WilliamRt6
 dc.b racetrackreturn,0,nullobject,nullobject
;---
RobertRt6
 dc.b racetrackreturn,0,nullobject,nullobject
;---
FionaRt6
 dc.b racetrackreturn,0,nullobject,nullobject
;---
CliffordRt6
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; Only triggered once all guests have arrived
jarvisRt6
 dc.b racetrackreturn,0,nullobject,nullobject
;---
InspectorRt6
 dc.b racetrackreturn,0,nullobject,nullobject
;---
;
;-------------------------------------------------------------------------
; MURDER 7
;-------------------------------------------------------------------------
;
SueRt7
 dc.b racetrackreturn,0,nullobject,nullobject
;---
VeraRt7
 dc.b racetrackreturn,0,nullobject,nullobject
;---
KathyRt7
 dc.b racetrackreturn,0,nullobject,nullobject
;---
AnthonyRt7
 dc.b racetrackreturn,0,nullobject,nullobject
;---
WilliamRt7
 dc.b racetrackreturn,0,nullobject,nullobject
;---
RobertRt7
 dc.b racetrackreturn,0,nullobject,nullobject
;---
FionaRt7
 dc.b racetrackreturn,0,nullobject,nullobject
;---
CliffordRt7
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; Only triggered once all guests have arrived
jarvisRt7
 dc.b racetrackreturn,0,nullobject,nullobject
;---
InspectorRt7
 dc.b racetrackreturn,0,nullobject,nullobject
;---
;
;-------------------------------------------------------------------------
; MURDER 8
;-------------------------------------------------------------------------
;
SueRt8
 dc.b racetrackreturn,0,nullobject,nullobject
;---
VeraRt8
 dc.b racetrackreturn,0,nullobject,nullobject
;---
KathyRt8
 dc.b racetrackreturn,0,nullobject,nullobject
;---
AnthonyRt8
 dc.b racetrackreturn,0,nullobject,nullobject
;---
WilliamRt8
 dc.b racetrackreturn,0,nullobject,nullobject
;---
RobertRt8
 dc.b racetrackreturn,0,nullobject,nullobject
;---
FionaRt8
 dc.b racetrackreturn,0,nullobject,nullobject
;---
CliffordRt8
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; Only triggered once all guests have arrived
jarvisrt8
 dc.b racetrackreturn,0,nullobject,nullobject
;---
InspectorRt8
 dc.b racetrackreturn,0,nullobject,nullobject
;---
;
;-------------------------------------------------------------------------
; MURDER 9
;-------------------------------------------------------------------------
;
SueRt9
 dc.b racetrackreturn,0,nullobject,nullobject
;---
VeraRt9
 dc.b racetrackreturn,0,nullobject,nullobject
;---
KathyRt9
 dc.b racetrackreturn,0,nullobject,nullobject
;---
AnthonyRt9
 dc.b racetrackreturn,0,nullobject,nullobject
;---
WilliamRt9
 dc.b racetrackreturn,0,nullobject,nullobject
;---
RobertRt9
 dc.b racetrackreturn,0,nullobject,nullobject
;---
FionaRt9
 dc.b racetrackreturn,0,nullobject,nullobject
;---
CliffordRt9
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; Only triggered once all guests have arrived
jarvisRt9
 dc.b racetrackreturn,0,nullobject,nullobject
;---
InspectorRt9
 dc.b racetrackreturn,0,nullobject,nullobject
;---
;
;-------------------------------------------------------------------------
; ARRIVALS OF KATHY+WILLIAM, ANTHONY, FIONA/CLIFFORD, SUE
;-------------------------------------------------------------------------
;
; kathy arrives at the front door
KathyArrivesRt
 dc.b go,0,45,nullobject ; go to archway
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+0 ; "What a fine day this is for the reunion," 
; sighed William
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+1 ; "It's a good while since I've seen your 
; folks", replied Kathy
 dc.b go,0,47,nullobject ; go to front of house
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+2 ; "I hope we're not too early," said Kathy
 dc.w Wwaitforperiod,10
;
; kathy rings the bell and waits for the door to open
kathywaitsforjarvis
 dc.b iplay,0,doorbell,nullobject ; ring doorbell
 dc.w WRtGosub,WaitAtFrontDoor-list5
;
; was door opened by jarvis?
 dc.b conditional,0,jarvis,nullobject ; jarvis here?
 dc.w WRtGoto,kathyfollowjarvis-list5 ; yes
;
; someone other than jarvis has opened the door
 dc.w WRtMessage,rtmess+20 ; "Thank's for letting us in," said Kathy. 
 dc.b go,0,86,nullobject ; go entrance hall
 dc.w WRtMessage,rtmess+20 ; "Thank's for letting us in," said Kathy. 
 dc.b conditional,0,jarvis,nullobject ; jarvis here?
 dc.w WRtGoto,kathyfollowjarvis-list5 ; yes
 dc.w WRtMessage,rtmess+21 ; "Jarvis?", shouted William, "Come and 
; help us with our luggage!"
 dc.b waitforperson,0,jarvis,nullobject
;
; jarvis has arrived, and kathy follows as he leads the way to her room
kathyfollowjarvis
;; dc.w Wwaitforperiod,50 ; make sure jarvis has stopped trying to find me
kathyfollowjarvis1
 dc.b ifollow,0,jarvis,nullobject ; follow him
 dc.b Rconditional,0,93,nullobject ; reached our room yet?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b wait,0,nullobject,nullobject ; prevents hang-up
 dc.w WRtGoto,kathyfollowjarvis1-list5
;---
; Actor has just arrived, and waits at front door for someone 
; to open it.
waitatfrontdoor
; message rtmess+10 is specially intercepted at an early stage, to 
; check if the door has been opened. If so, a racetrack return is 
; executed. Otherwise, the message is printed at random
 dc.w WRtActorVaryMessage,rtmess+10 ; sighed, "Come on, Jarvis."
; tapped lightly on the door.
; yawned and said, "I wish somebody would answer"
; shouted, "Hello? Is anyone home?"
; banged on the door.
 dc.w WRtGoto,waitatfrontdoor-list5
;---
; william follows kathy until his room is reached
WilliamArrivesRt
 dc.b ifollow,0,Kathy,nullobject
 dc.b Rconditional,0,93,nullobject ; reached our room yet?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b wait,0,nullobject,nullobject ; prevents hang-up
 dc.w WRtGoto,WilliamArrivesRt-list5
;---
JarvisGreetsKathyRt
 dc.w WRtMessage,rtmess+200 ; "Is that the doorbell I can hear?", muttered 
; jarvis.
 dc.b find,0,kathy,nullobject ; find kathy
 dc.w WRtMessage,rtmess+201 ; "Hello William", said Jarvis. "And good day 
; to you, m'lady. This way please."
 dc.b go,0,86,nullobject ; go entrance hall
 dc.b waitforperson,0,william,nullobject
;; dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+202 ; "I see you've been keeping the place tidy, 
; Jarvis," commented Kathy.
 dc.b go,0,83,nullobject ; go hall
 dc.b waitforperson,0,william,nullobject
;; dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+203 ; Kathy chatted to Jarvis about the weather. 
; William tagged along, looking increasingly bored.
 dc.b go,0,84,nullobject ; go landing
 dc.b waitforperson,0,william,nullobject
;; dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+204 ; "Same room as usual, m'lady," said Jarvis with 
; a gesture towards the door.
 dc.b go,0,93,nullobject ; go green bedroom
 dc.b waitforperson,0,william,nullobject
 dc.b find,0,william,nullobject
 dc.w WRtMessage,rtmess+205 ; "Many thanks, Jarvis", said William.
 dc.w WWaitforperiod,30
 dc.w WRtMessage,rtmess+250 ; "Much appreciated," replied Jarvis. "Dinner 
; will be served at six. Until then, feel free to wander around"
 dc.w WRtGoto,JarvisInterruptible1-list5
;---
; Anthony arrives at the front door
AnthonyArrivesRt
 dc.b go,0,45,nullobject ; go to archway
 dc.w Wwaitforperiod,5
 dc.w WRtMessage,rtmess+40 ; Anthony whistled merrily to himself
 dc.b go,0,47,nullobject ; go to front of house
 dc.w WRtMessage,rtmess+41 ; Anthony hummed a little tune
;
; Anthony rings the bell and waits for jarvis
anthonywaitsforjarvis
 dc.b iplay,0,doorbell,nullobject ; ring doorbell
 dc.w WRtGosub,WaitAtFrontDoor-list5
;
; was door opened by jarvis?
 dc.b conditional,0,jarvis,nullobject ; jarvis here?
 dc.w WRtGoto,anthonyfollowjarvis-list5 ; yes
;
; someone other than jarvis has opened the door
 dc.w WRtMessage,rtmess+50 ; "Thank's for letting me in," said Anthony. 
 dc.b go,0,86,nullobject ; go entrance hall
 dc.w WRtMessage,rtmess+50 ; "Thank's for letting me in," said Anthony. 
 dc.b conditional,0,jarvis,nullobject ; jarvis here?
 dc.w WRtGoto,anthonyfollowjarvis-list5 ; yes
 dc.w WRtMessage,rtmess+51 ; "Jarvis?", shouted Anthony, "Where are 
; you?"
 dc.b waitforperson,0,jarvis,nullobject
;
; jarvis has arrived, and Anthony follows as he leads the way to his room
Anthonyfollowjarvis
;; dc.w Wwaitforperiod,50 ; make sure jarvis has stopped trying to find me
Anthonyfollowjarvis1
 dc.b ifollow,0,jarvis,nullobject ; follow him
 dc.b Rconditional,0,97,nullobject ; reached our room yet?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b wait,0,nullobject,nullobject ; prevents hang-up
 dc.w WRtGoto,Anthonyfollowjarvis1-list5
;---
JarvisGreetsAnthonyRt
 dc.w WRtMessage,rtmess+210 ; "Ah," began Jarvis. "There goes the 
; doorbell."
 dc.b find,0,anthony,nullobject ; find anthony
 dc.w WRtMessage,rtmess+211 ; "Good day to you, Anthony", said Jarvis. 
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+212 ; "Yes," replied Anthony, "A fine day 
; indeed."
 dc.b go,0,86,nullobject ; go entrance hall
 dc.b waitforperson,0,anthony,nullobject
 dc.w Wwaitforperiod,10 ;;20
 dc.w WRtMessage,rtmess+213 ; Anthony wiped his feet on the doormat.
 dc.b go,0,83,nullobject ; go hall
 dc.b waitforperson,0,anthony,nullobject
 dc.w Wwaitforperiod,10 ;;20
 dc.w WRtMessage,rtmess+214 ; "Mmm," said Anthony as he sniffed the 
; air. "I wonder what's cooking?"
 dc.b go,0,84,nullobject ; go landing
 dc.b waitforperson,0,anthony,nullobject
 dc.w Wwaitforperiod,10 ;;20
;; dc.b LocalMove,0,3,8
 dc.w WRtMessage,rtmess+215 ; "I hope your room's to your satisfaction," 
; said Jarvis as he reached to open the door
 dc.b go,0,97,nullobject
 dc.b waitforperson,0,anthony,nullobject
 dc.b find,0,anthony,nullobject
 dc.w WRtMessage,rtmess+216 ; "Just right," said Anthony, "I see you've 
; kept it tidy as usual, Jarvis"
 dc.w WWaitforperiod,30
 dc.w WRtMessage,rtmess+251 ; "Thank you, Sir," replied Jarvis. "Dinner's 
; at six. Feel free to do as you please until then"
 dc.w WRtGoto,JarvisInterruptible2-list5
;---
; Clifford arrives at the front door
CliffordArrivesRt
 dc.b go,0,45,nullobject ; go to archway
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+80 ; "Why the frown?", Clifford asked Fiona.
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+81 ; "Oh," sighed Fiona, "I'm just a bit worried 
; about the way my father's letting the business drift."
 dc.b go,0,47,nullobject ; go to front of house
 dc.w Wwaitforperiod,10
 dc.w WRtMessage,rtmess+82 ; Clifford gave Fiona a friendly peck 
; on the cheek.
 dc.b animate,3
 dc.w KissAnimation+5 ; kiss south
;
; clifford rings the bell and waits for jarvis
cliffordwaitsforjarvis
 dc.b iplay,0,doorbell,nullobject ; ring doorbell
 dc.w WRtGosub,WaitAtFrontDoor-list5
;
; was door opened by jarvis?
 dc.b conditional,0,jarvis,nullobject ; jarvis here?
 dc.w WRtGoto,cliffordfollowjarvis-list5 ; yes
;
; someone other than jarvis has opened the door
 dc.w WRtMessage,rtmess+90 ; "Thank's for letting us in," said Clifford. 
 dc.b go,0,86,nullobject ; go entrance hall
 dc.w WRtMessage,rtmess+90 ; "Thank's for letting us in," said Clifford. 
 dc.b conditional,0,jarvis,nullobject ; jarvis here?
 dc.w WRtGoto,cliffordfollowjarvis-list5 ; yes
 dc.w WRtMessage,rtmess+91 ; "Where's Jarvis got to?", mumbled Clifford.
 dc.b waitforperson,0,jarvis,nullobject
;
; jarvis has arrived, and clifford follows as he leads the way to his room
cliffordfollowjarvis
;; dc.w Wwaitforperiod,50 ; make sure jarvis has stopped trying to find me
cliffordfollowjarvis1
 dc.b ifollow,0,jarvis,nullobject ; follow him
 dc.b Rconditional,0,91,nullobject ; reached our room yet?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b wait,0,nullobject,nullobject ; prevents hang-up
 dc.w WRtGoto,cliffordfollowjarvis1-list5
;---
; fiona follows clifford until her room is reached
FionaArrivesRt
 dc.b ifollow,0,clifford,nullobject
 dc.b Rconditional,0,91,nullobject ; reached our room yet?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b wait,0,nullobject,nullobject ; prevents hang-up
 dc.w WRtGoto,fionaArrivesRt-list5
;---
JarvisGreetsCliffordRt
 dc.w WRtMessage,rtmess+220 ; "I'd better answer that," sighed Jarvis 
; as the doorbell rang.
 dc.b find,0,clifford,nullobject ; find clifford
 dc.w WRtMessage,rtmess+221 ; "Well, if it isn't Fiona and Clifford," 
; enthused Jarvis.
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+222 ; "I trust you've both been keeping well," 
; continued Jarvis as he took the couple's luggage.
 dc.b go,0,86,nullobject ; go entrance hall
 dc.b waitforperson,0,fiona,nullobject
;; dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+223 ; Clifford droned on and on about his 
; journey to the grange.
 dc.b go,0,83,nullobject ; go hall
 dc.b waitforperson,0,fiona,nullobject
;; dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+224 ; "...they should make the roads wider," 
; added Clifford in a stern tone.
 dc.b go,0,84,nullobject ; go landing
 dc.b waitforperson,0,fiona,nullobject
;; dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+225 ; Clifford continues his monotonous 
; protest about the British highways. Jarvis got increasingly bored. 
; a gesture towards the door.
 dc.b go,0,91,nullobject
 dc.b waitforperson,0,fiona,nullobject
 dc.b find,0,clifford,nullobject
 dc.w WRtMessage,rtmess+226 ; Clifford fumbled in his wallet to find a tip.
 dc.w WWaitforperiod,15
 dc.b animate,3
 dc.w reachleftanimation+7 ; reach west
 dc.w WWaitforperiod,15
 dc.w WRtMessage,rtmess+252 ; "Many thanks," said Jarvis as he 
; took Clifford's tip. "Have a pleasant day."
 dc.w WRtGoto,JarvisInterruptible3-list5
;---
; Sue arrives at the front door
SueArrivesRt
 dc.b go,0,45,nullobject ; go to archway
 dc.w Wwaitforperiod,5
 dc.w WRtMessage,rtmess+120 ; "Hello, Sam", said Sue. "Isn't it a lovelly 
; day?"
 dc.b go,0,47,nullobject ; go to front of house
 dc.w WRtMessage,rtmess+121 ; "Meeting the family will be an experience," 
; concluded Sue
;
; sue rings the bell and waits for jarvis
suewaitsforjarvis
 dc.b iplay,0,doorbell,nullobject ; ring doorbell
 dc.w WRtGosub,WaitAtFrontDoor-list5
;
; was door opened by jarvis?
 dc.b conditional,0,jarvis,nullobject ; jarvis here?
 dc.w WRtGoto,suefollowjarvis-list5 ; yes
;
; someone other than jarvis has opened the door
 dc.w WRtMessage,rtmess+130 ; "Thank you," said Sue, "I'm always forgetting 
; my keys, you know"
 dc.b go,0,86,nullobject ; go entrance hall
 dc.w WRtMessage,rtmess+130
 dc.b conditional,0,jarvis,nullobject ; jarvis here?
 dc.w WRtGoto,suefollowjarvis-list5 ; yes
 dc.w WRtMessage,rtmess+131 ; "Now where's Jarvis goto to?", said Sue
 dc.b waitforperson,0,jarvis,nullobject
;
; jarvis has arrived, and sue follows as he leads the way to her room
suefollowjarvis
;; dc.w Wwaitforperiod,50 ; make sure jarvis has stopped trying to find me
suefollowjarvis1
 dc.b ifollow,0,jarvis,nullobject ; follow him
 dc.b Rconditional,0,92,nullobject ; reached our room yet?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b wait,0,nullobject,nullobject ; prevents hang-up
 dc.w WRtGoto,suefollowjarvis1-list5
;---
JarvisGreetsSueRt
 dc.w WRtMessage,rtmess+230 ; "That must be Sue" said Jarvis
 dc.b find,0,sue,nullobject ; find anthony
 dc.w WRtMessage,rtmess+231 ; "Hello, Sue", said Jarvis. "Let me help 
; you with your things"
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+232 ; "Many thanks, Jarvis," replied Sue
 dc.b go,0,86,nullobject ; go entrance hall
 dc.b waitforperson,0,sue,nullobject
 dc.w Wwaitforperiod,10
 dc.w WRtMessage,rtmess+233 ; "And how's your Vera today?", asked Sue
 dc.w Wwaitforperiod,10
 dc.w WRtMessage,rtmess+234 ; "Oh, much the same as usual," sighed Jarvis, 
; "Still not speaking to me..."
 dc.b go,0,83,nullobject ; go hall
 dc.b waitforperson,0,sue,nullobject
 dc.w Wwaitforperiod,10 ;;20
 dc.w WRtMessage,rtmess+235 ; "Well, at least Vara's cooking smells up to 
; scratch," said Sue, sniffing the air
 dc.b go,0,84,nullobject ; go landing
 dc.b waitforperson,0,sue,nullobject
 dc.w Wwaitforperiod,10 ;;20
;; dc.b LocalMove,0,3,8
 dc.w WRtMessage,rtmess+236 ; "Your room's as you left it last night, Sue" 
; said Jarvis.
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+237 ; "The bed didn't appear to need making", added 
; Jarvis quietly
 dc.b go,0,92,nullobject
 dc.b waitforperson,0,sue,nullobject
 dc.b find,0,sue,nullobject
 dc.w Wwaitforperiod,10 ;;20
 dc.w WRtMessage,rtmess+238 ; "Thank you Jarvis," said Sue. "I'll call if 
; I need you"
 dc.w WWaitforperiod,30
 dc.w WRtMessage,rtmess+253 ; "Very well ma'am," said Jarvis
 dc.w WRtGoto,JarvisInterruptible-list5
;---
; General Rt for Jarvis answering door to somebody other than a new 
; arrival.
JarvisAnswerDoor
 dc.b go,0,47,nullobject
 dc.b animate,1
 dc.w standinganimation+5 ; stand south
 dc.w WRtMessage,rtmess+240 ; "You rang sir?", said Jarvis.
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+241 ; Jarvis shrugged his shoulders.
 dc.w WRtGoto,JarvisInterruptible-list5
;
;-------------------------------------------------------------------------
; JARVIS INTITIAL RACETRACK - USED WHILE GUESTS ARRIVE
;-------------------------------------------------------------------------
;
JarvisInitial
 dc.w Wwaitforperiod,10
 dc.b find,0,user,nullobject
 dc.w WRtMessage,rtmess+260 ; "Hello, Sam," said Jarvis.
 dc.w Wwaitforperiod,30
 dc.w WRtMessage,rtmess+261 ; "If you'll excuse me," said Jarvis, "I've 
; got plenty of work to do."
;
; Jarvis returns at some point in this loop when he's answered the door 
; and/or finished showing someone to their room...
JarvisInterruptible
 dc.w WRtGosub,JarvisLanding-list5
JarvisInterruptible1
 dc.w WRtGosub,JarvisLibrary-list5
JarvisInterruptible2
 dc.b go,0,88,nullobject ; go games room
 dc.w WWaitforperiod,40
JarvisInterruptible3
 dc.b go,0,77,nullobject ; go dining room
 dc.w WWaitforperiod,20
 dc.b localmove,0,6,8
 dc.w WRtMessage,rtmess+264 ; Jarvis polished the table.
 dc.b animate,3
 dc.w ReachleftAnimation+5 ; reach south
 dc.b localmove,0,8,8
 dc.b animate,3
 dc.w ReachrightAnimation+5 ; reach south
 dc.b localmove,0,10,8
 dc.b animate,3
 dc.w ReachleftAnimation+5 ; reach south
 dc.w WWaitforperiod,20
 dc.w WRtGoto,JarvisInterruptible-list5
;
JarvisLanding
 dc.b go,0,84,nullobject ; go landing
 dc.w WWaitforperiod,20
 dc.b localmove,0,8,7
 dc.w WRtMessage,rtmess+262 ; Jarvis polished the bannister.
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,10,7
 dc.b animate,3
 dc.w ReachrightAnimation+1 ; reach north
 dc.b localmove,0,12,7
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,14,7
 dc.b animate,3
 dc.w ReachrightAnimation+1 ; reach north
 dc.w WWaitforperiod,20
 dc.b racetrackreturn,0,nullobject,nullobject

JarvisLibrary
 dc.b go,0,88,nullobject ; go library
 dc.w WWaitforperiod,20
 dc.b LocalMove,0,6,5 ; move to bookcase
 dc.w WRtMessage,rtmess+263 ; Jarvis dusted the bookshelves.
 dc.b animate,3
 dc.w ReachupAnimation+1 ; reach north
 dc.b localmove,0,5,5
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,4,5
 dc.b animate,3
 dc.w ReachrightAnimation+1 ; reach north
 dc.w WWaitforperiod,20
 dc.b racetrackreturn,0,nullobject,nullobject
;
;-------------------------------------------------------------------------
; JARVIS PREPARES DINNER TABLE UNTIL ALL GUESTS ARRIVE
;-------------------------------------------------------------------------
;
JarvisPrepareTable
 dc.b go,0,77,nullobject ; go dining room
 dc.w Wwaitforperiod,20
 dc.b localmove,0,6,8 ; walk to front left of table
 dc.w WActorSingleMessage,rtmess+270 ; prepared the table for dinner
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,7,8 ; walk right 1 cell
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,8,8 ; walk right 1 cell
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,9,8 ; walk right 1 cell
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,10,8 ; walk right 1 cell
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,11,8 ; walk right 1 cell
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,12,8 ; walk right 1 cell
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
;
 dc.w WRtGosub,isdinnerserved-list5 ; are all guests here for dinner?
 dc.b conditional,0,dinnerisserved,nullobject
 dc.b racetrackreturn,0,nullobject,nullobject ; if so, then return
;
 dc.w WRtGosub,JarvisLibrary-list5
;
 dc.w WRtGosub,isdinnerserved-list5 ; are all guests here for dinner?
 dc.b conditional,0,dinnerisserved,nullobject
 dc.b racetrackreturn,0,nullobject,nullobject ; if so, then return
;
 dc.w Wwaitforperiod,20
 dc.b localmove,0,12,8 ; walk to front right of table
 dc.w WActorSingleMessage,rtmess+271 ; laid the table
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,11,8 ; walk left 1 cell
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,10,8 ; walk left 1 cell
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,9,8 ; walk left 1 cell
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,8,8 ; walk left 1 cell
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,7,8 ; walk left 1 cell
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
 dc.b localmove,0,6,8 ; walk left 1 cell
 dc.b animate,3
 dc.w ReachleftAnimation+1 ; reach north
;
 dc.w WRtGosub,isdinnerserved-list5 ; are all guests here for dinner?
 dc.b conditional,0,dinnerisserved,nullobject
 dc.b racetrackreturn,0,nullobject,nullobject ; if so, then return
;
 dc.w WRtGosub,JarvisLanding-list5
;
 dc.w WRtGosub,isdinnerserved-list5 ; are all guests here for dinner?
 dc.b conditional,0,dinnerisserved,nullobject
 dc.b racetrackreturn,0,nullobject,nullobject ; if so, then return
;
 dc.w WRtGoto,JarvisPrepareTable-list5
;
; Are all guests here for dinner?
IsDinnerServed
 dc.b conditional,0,robert,nullobject ; robert?
 dc.w WRtGoto,IDS1-list5 ; yes
 dc.b racetrackreturn,0,nullobject,nullobject ; no
IDS1
 dc.b conditional,0,sue,nullobject ; sue?
 dc.w WRtGoto,IDS2-list5 ; yes
 dc.b racetrackreturn,0,nullobject,nullobject ; no
IDS2
 dc.b conditional,0,kathy,nullobject ; kathy?
 dc.w WRtGoto,IDS3-list5 ; yes
 dc.b racetrackreturn,0,nullobject,nullobject ; no
IDS3
 dc.b conditional,0,anthony,nullobject ; anthony?
 dc.w WRtGoto,IDS4-list5 ; yes
 dc.b racetrackreturn,0,nullobject,nullobject ; no
IDS4
 dc.b conditional,0,william,nullobject ; william?
 dc.w WRtGoto,IDS5-list5 ; yes
 dc.b racetrackreturn,0,nullobject,nullobject ; no
IDS5
 dc.b conditional,0,fiona,nullobject ; fiona?
 dc.w WRtGoto,IDS6-list5 ; yes
 dc.b racetrackreturn,0,nullobject,nullobject ; no
IDS6
 dc.b conditional,0,clifford,nullobject ; robert?
 dc.w WRtGoto,IDS7-list5 ; yes
 dc.b racetrackreturn,0,nullobject,nullobject ; no
IDS7
; All guests are here...
;
 dc.w WRtMessage,rtmess+3021 ; "Let the feast begin!", announced 
; Sir Robert
;
 dc.b go,0,80,nullobject ; go to kitchen (this also allows time for 
; the last guest to sit down at the table before 'dinnerisserved' is 
; set. this helps synchronise all guests, so that they can interact 
; with each other)
;
; Message 3020 is intercepted to set the flag DinnerIsServed
 dc.w WRtMessage,rtmess+3020 ; "Everyone's ready for dinner," said 
; Jarvis
;
 dc.b racetrackreturn,0,nullobject,nullobject
;
;-------------------------------------------------------------------------
; VARIOUS GUESTS GO TO DINNER & CHAT UNTIL ALL OTHER GUESTS HAVE ARRIVED
;-------------------------------------------------------------------------
;
RobertPreDinner
 dc.w WRtActorVaryMessage,rtmess+1300
; said, "Smells like dinner's ready"
; said, "I wonder if dinner's ready"
; said, "I think it's time for dinner"
; said, "Dinner should be ready by now"
; said, "I'm starving"
 dc.b go,0,83,nullobject ; go via hall (enter through N door!)
 dc.b go,0,77,nullobject ; go to dining room
 dc.b localmove,0,2,9 ; front left of table
 dc.b localmove,0,2,8 ; left of table
 dc.b localmove,0,4,7 ; rear left of table
 dc.b localmove,0,7,7 ; rear left chair
 dc.b animate,3
 dc.w SitAnimation+5 ; sit south
RPDLoop
 dc.b conditional,0,dinnerisserved,nullobject ; all guests here for dinner?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b conditional,254,random,63
 dc.w WRtActorVaryMessage,rtmess+1310
; said, "It's nice to see the family again"
; said, "Is everyone ready for dinner?"
; chatted about business
; toyed with his knife and fork
; shouted, "Come on Vera, I'm starving"
 dc.b wait,0,nullobject,nullobject ; prevent hang-up
 dc.w WRtGoto,RPDLoop-list5
;---
WilliamPreDinner
 dc.w WRtActorVaryMessage,rtmess+1300
; said, "Smells like dinner's ready"
; said, "I wonder if dinner's ready"
; said, "I think it's time for dinner"
; said, "Dinner should be ready by now"
; said, "I'm starving"
 dc.b go,0,83,nullobject ; go via hall (enter through N door!)
 dc.b go,0,77,nullobject ; go to dining room
 dc.b localmove,0,2,9 ; front left of table
 dc.b localmove,0,2,8 ; left of table
 dc.b localmove,0,4,7 ; rear left of table
 dc.b localmove,0,11,7 ; rear right chair
 dc.b animate,3
 dc.w SitAnimation+5 ; sit south
WPDLoop
 dc.b conditional,0,dinnerisserved,nullobject ; all guests here for dinner?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b conditional,254,random,63
 dc.w WRtActorVaryMessage,rtmess+1320
; said, "I'm ready for dinner"
; sniffed the air. "Dinner smells good," he said
; licked his lips hungrily
; talked about his practice at the surgery
; commented on the placemats
 dc.b wait,0,nullobject,nullobject ; prevent hang-up
 dc.w WRtGoto,WPDLoop-list5
;---
KathyPreDinner
 dc.w WRtActorVaryMessage,rtmess+1300
; said, "Smells like dinner's ready"
; said, "I wonder if dinner's ready"
; said, "I think it's time for dinner"
; said, "Dinner should be ready by now"
; said, "I'm starving"
 dc.b go,0,83,nullobject ; go via hall (enter through N door!)
 dc.b go,0,77,nullobject ; go to dining room
 dc.b localmove,0,2,9 ; front left of table
 dc.b localmove,0,2,8 ; left of table
 dc.b localmove,0,4,7 ; rear left of table
 dc.b localmove,0,9,7 ; rear middle chair
 dc.b animate,3
 dc.w SitAnimation+5 ; sit south
KPDLoop
 dc.b conditional,0,dinnerisserved,nullobject ; all guests here for dinner?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b conditional,254,random,63
 dc.w WRtActorVaryMessage,rtmess+1330
; said, "I'm famished"
; flirted with everyone at the table
; talked about the flowers in the garden
; straightened her place mat
; adjusted her napkin
 dc.b wait,0,nullobject,nullobject ; prevent hang-up
 dc.w WRtGoto,KPDLoop-list5
;---
AnthonyPreDinner
 dc.w WRtActorVaryMessage,rtmess+1300
; said, "Smells like dinner's ready"
; said, "I wonder if dinner's ready"
; said, "I think it's time for dinner"
; said, "Dinner should be ready by now"
; said, "I'm starving"
 dc.b go,0,83,nullobject ; go via hall (enter through N door!)
 dc.b go,0,77,nullobject ; go to dining room
 dc.b localmove,0,14,8 ; walk to table
 dc.b animate,3
 dc.w SitAnimation+7 ; sit west
APDLoop
 dc.b conditional,0,dinnerisserved,nullobject ; all guests here for dinner?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b conditional,254,random,63
 dc.w WRtActorVaryMessage,rtmess+1340
; grinned as his stomach rumbled
; talked about his sports car
; rubbed his stomach
; commented on the garden
; said, "I wonder what's for dinner,"
 dc.b wait,0,nullobject,nullobject ; prevent hang-up
 dc.w WRtGoto,APDLoop-list5
;---
FionaPreDinner
 dc.w WRtActorVaryMessage,rtmess+1300
; said, "Smells like dinner's ready"
; said, "I wonder if dinner's ready"
; said, "I think it's time for dinner"
; said, "Dinner should be ready by now"
; said, "I'm starving"
 dc.b go,0,83,nullobject ; go via hall (enter through N door!)
 dc.b go,0,77,nullobject ; go to dining room
 dc.b localmove,0,11,9 ; walk to table
 dc.b animate,3
 dc.w SitAnimation+1 ; sit north
FPDLoop
 dc.b conditional,0,dinnerisserved,nullobject ; all guests here for dinner?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b conditional,254,random,63
 dc.w WRtActorVaryMessage,rtmess+1350
; talked about her horses
; said, "Something smells good"
; talked about the family business
; chatted about horse riding
; straightened her knife and fork
 dc.b wait,0,nullobject,nullobject ; prevent hang-up
 dc.w WRtGoto,FPDLoop-list5
;---
CliffordPreDinner
 dc.w WRtActorVaryMessage,rtmess+1300
; said, "Smells like dinner's ready"
; said, "I wonder if dinner's ready"
; said, "I think it's time for dinner"
; said, "Dinner should be ready by now"
; said, "I'm starving"
 dc.b go,0,83,nullobject ; go via hall (enter through N door!)
 dc.b go,0,77,nullobject ; go to dining room
 dc.b localmove,0,9,9 ; walk to table
 dc.b animate,3
 dc.w SitAnimation+1 ; sit north
CPDLoop
 dc.b conditional,0,dinnerisserved,nullobject ; all guests here for dinner?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b conditional,254,random,63
 dc.w WRtActorVaryMessage,rtmess+1360 ; clifford idle chat
; said, "I could eat a horse,"
; attempted a few jokes
; cracked a joke and laughed loudly
; droned on about his journey to the grange
; looked towards the kitchen
 dc.b wait,0,nullobject,nullobject ; prevent hang-up
 dc.w WRtGoto,CPDLoop-list5
;---
SuePreDinner
 dc.w WRtActorVaryMessage,rtmess+1300
; said, "Smells like dinner's ready"
; said, "I wonder if dinner's ready"
; said, "I think it's time for dinner"
; said, "Dinner should be ready by now"
; said, "I'm starving"
 dc.b go,0,83,nullobject ; go via hall (enter through N door!)
 dc.b go,0,77,nullobject ; go to dining room
 dc.b localmove,0,7,9 ; walk to table
 dc.b animate,3
 dc.w SitAnimation+1 ; sit north
SPDLoop
 dc.b conditional,0,dinnerisserved,nullobject ; all guests here for dinner?
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b conditional,254,random,63
 dc.w WRtActorVaryMessage,rtmess+1370
; smiled politely
; said, "I'm so hungry"
; smiled at the guests
; waited quietly
; edged her chair in a little
 dc.b wait,0,nullobject,nullobject ; prevent hang-up
 dc.w WRtGoto,SPDLoop-list5
;
;-------------------------------------------------------------------------
; KATHY+WILLIAM, ANTHONY, FIONA/CLIFFORD, SUE UNPACK IN THEIR ROOMS
;-------------------------------------------------------------------------
;
kathyunpacks
 dc.b waitforpersontoleave,0,jarvis,nullobject ; jarvis gone?
 dc.b waitforperson,0,william,nullobject ; wait for william
 dc.b find,0,william,nullobject ; make sure william reaches us locally 
; so that he stops following
 dc.b find,0,bed,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,6,8 ; go bed
 dc.b animate,3
 dc.w SitAnimation+5 ; sit south
 dc.b waitforpersontoleave,0,william,nullobject ; wait until william's gone
 dc.w WWaitforperiod,20
 dc.w WRtMessage,rtmess+300 ; "I thought he'd never leave," said Kathy 
; with a smile.
 dc.b animate,1
 dc.w StandupAnimation+1 ; stand up south
 dc.b find,0,table,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,4,10 ;>>mike 8/9/89. 9 ; go to dresser
 dc.w WRtMessage,rtmess+301 ; Kathy put on some make-up
 dc.b animate,3
 dc.w reachleftAnimation+5 ; reach south
 dc.w WWaitforperiod,20
 dc.b animate,3
 dc.w reachrightAnimation+5 ; reach south
 dc.w WRtMessage,rtmess+302 ; Kathy blew a kiss to the mirror
 dc.b animate,3
 dc.w KissAnimation+5 ; kiss south
 dc.b racetrackreturn,0,nullobject,nullobject
;---
williamunpacks
 dc.b waitforpersontoleave,0,jarvis,nullobject ; jarvis gone?
 dc.b find,0,kathy,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,6,6 ; go bed
 dc.w WRtMessage,rtmess+310 ; William began to unpack
 dc.b animate,3
 dc.w reachleftAnimation+5 ; reach south
 dc.b open,0,wardrobe,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,12,5 ; go wardrobe
 dc.w WRtMessage,rtmess+311 ; William sorted through his wardrobe
 dc.b animate,3
 dc.w reachleftAnimation+1 ; reach north
 dc.b find,0,kathy,nullobject ; return to kathy
 dc.w WRtMessage,rtmess+312 ; William kissed Kathy
 dc.b animate,3
 dc.w KissAnimation+7 ; kiss west
;; GMJ 25/9/89 ;;localmove,0,6,6 ; go bed
;; dc.b animate,3
;; dc.w SitAnimation+1 ; sit north
 dc.w WRtMessage,rtmess+313 ; "I'm going to have a wander around,"
; William announced
 dc.w WWaitforperiod,30
 dc.b animate,1
 dc.w StandupAnimation+1 ; stand up south
 dc.w WRtMessage,rtmess+314 ; "Oh, I think I'll just relax for a while," 
; replied Kathy
 dc.b racetrackreturn,0,nullobject,nullobject
;---
anthonyunpacks
 dc.b waitforpersontoleave,0,jarvis,nullobject ; jarvis gone?
 dc.b find,0,bed,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,13,8 ; go bed
 dc.w WRtMessage,rtmess+320 ; Anthony began to unpack
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachleftAnimation+5 ; reach south
 dc.b open,0,wardrobe,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,12,5 ; go wardrobe
 dc.w WRtMessage,rtmess+321 ; Anthony rummidged through his wardrobe
 dc.b animate,3
 dc.w reachrightAnimation+1 ; reach north
 dc.b animate,3
 dc.w reachleftAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+322 ; "Right," said Anthony, "I'm going for a 
; browse around"
 dc.b racetrackreturn,0,nullobject,nullobject
;---
fionaunpacks
 dc.b waitforpersontoleave,0,jarvis,nullobject ; jarvis gone?
 dc.b open,0,wardrobe,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,12,6 ; go wardrobe
 dc.w WRtMessage,rtmess+330 ; Fiona dumped her belongings in the wardrobe 
; while Clifford sat sighing.
 dc.b animate,3
 dc.w reachleftAnimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+331 ; "I'm off for a chat with daddy," said Fiona
 dc.b racetrackreturn,0,nullobject,nullobject
;---
cliffordunpacks
 dc.b waitforpersontoleave,0,jarvis,nullobject ; jarvis gone?
 dc.b waitforperson,0,fiona,nullobject ; wait for fiona
 dc.b find,0,fiona,nullobject ; make sure fiona reaches us locally 
; so that she stops following
 dc.b find,0,bed,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,4,8 ; go bed
 dc.b animate,3
 dc.w SitAnimation+1 ; sit north
 dc.b waitforpersontoleave,0,fiona,nullobject ; wait until fiona's gone
 dc.w WWaitforperiod,20
 dc.w WRtMessage,rtmess+340 ; "I suppose I'd better unpack," said Clifford
 dc.b animate,1
 dc.w StandupAnimation+1 ; stand up north
 dc.b open,0,wardrobe,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,11,6 ; go wardrobe
 dc.w WRtMessage,rtmess+341 ; Clifford hung his clothes in the wardrobe
 dc.b animate,3
 dc.w reachdownAnimation+1 ; reach north
 dc.b animate,3
 dc.w reachleftAnimation+1 ; reach north
 dc.b animate,3
 dc.w reachdownAnimation+1 ; reach north
 dc.b animate,3
 dc.w reachrightAnimation+1 ; reach north
 dc.w WRtMessage,rtmess+342 ; "That should do," said Clifford
 dc.b racetrackreturn,0,nullobject,nullobject
;---
sueunpacks
 dc.b waitforpersontoleave,0,jarvis,nullobject ; jarvis gone?
 dc.b find,0,bed,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,4,9 ; go bed
 dc.w WRtMessage,rtmess+350 ; Sue sat uneasily on the bed
 dc.b animate,3
 dc.w SitAnimation+5 ; sit south
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+351 ; "I hope everything goes well today," she
; sighed
 dc.w Wwaitforperiod,50
 dc.w WRtMessage,rtmess+352 ; "I think I'll go and see how things are
; getting on," said Sue
 dc.b animate,1
 dc.w StandupAnimation+1 ; stand up south
 dc.b racetrackreturn,0,nullobject,nullobject
;
;-------------------------------------------------------------------------
; ROBERT STAYS IN STUDY AND AWAITS VISITS FROM HIS FAMILY
;-------------------------------------------------------------------------
;
; while no guests are present, robert will talk to user etc.
robertinstudy
 dc.b go,0,94,nullobject ; go bedroom
 dc.w Wwaitforperiod,20
 dc.b localmove,0,10,11 ; walk to chair
 dc.b animate,3
 dc.w SitAnimation+7 ; sit west
robertinstudy1
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is robert busy with guests?
 dc.w WActorSingleMessage,rtmess+360 ; shuffled through some papers
 dc.b animate,3
 dc.w ReadAnimation+7 ; read west
 dc.w Wwaitforperiod,75
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is robert busy with guests?
 dc.w WActorSingleMessage,rtmess+361 ; studied some paperwork
 dc.b animate,3
 dc.w ReadAnimation+7 ; read west
 dc.w Wwaitforperiod,75
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is robert busy with guests?
 dc.w WRtMessage,rtmess+362 ; "Well, Sam," said Robert, "How's 
; your work doing?"
 dc.w Wwaitforperiod,75
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is robert busy with guests?
 dc.w WRtMessage,rtmess+363 ; "Why not meet some of my family?",
; said Robert
 dc.w Wwaitforperiod,30
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is robert busy with guests?
 dc.w WRtMessage,rtmess+364 ; "I'm sure they'd be pleased to chat 
; with you", added Sir Robert
;
 dc.b animate,1
 dc.w standupAnimation+1 ; stand up west
 dc.b find,0,window,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,15,7 ; walk to window
 dc.b animate,3
 dc.w ReachRightAnimation+3 ; reach/face east
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is robert busy with guests?
 dc.w WActorSingleMessage,rtmess+365 ; gazed out of the window
 dc.w Wwaitforperiod,75
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is robert busy with guests?
 dc.w WRtMessage,rtmess+366 ; "When is Jarvis going to mow 
; the lawns?", sighed Sir Robert
 dc.w Wwaitforperiod,75
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is robert busy with guests?
 dc.w WRtMessage,rtmess+367 ; "Everything okay with the security 
; systems, Sam?", asked Sir Robert
 dc.w Wwaitforperiod,75
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is robert busy with guests?
 dc.w WRtMessage,rtmess+368 ; "Why don't you check out the 
; grounds, Sam?", urged Sir Robert
;
 dc.b go,0,95,nullobject ; go dressing room
 dc.w Wwaitforperiod,20
 dc.b find,0,table,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,12,7 ; walk to desk
 dc.b animate,3
 dc.w SitAnimation+5 ; sit south
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is robert busy with guests?
 dc.w WActorSingleMessage,rtmess+369 ; searched for some papers
 dc.b animate,3
 dc.w ReadAnimation+5 ; read south
 dc.w Wwaitforperiod,75
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is robert busy with guests?
 dc.w WActorSingleMessage,rtmess+370 ; said, "I really ought to change 
; my will"
 dc.b animate,3
 dc.w ReadAnimation+5 ; read south
 dc.w Wwaitforperiod,75
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is robert busy with guests?
 dc.w WActorSingleMessage,rtmess+371 ; scribled onto some paper
; my will"
 dc.b animate,3
 dc.w ReadAnimation+5 ; read south
 dc.w Wwaitforperiod,75
 dc.b animate,3
 dc.w StandUpAnimation+5 ; stand up south
 dc.b racetrackreturn,0,nullobject,nullobject
;---
suevisitsrobert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+400 ; "How are you, dear?", Sue asked Sir Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+401 ; "Oh, so and so," replied Sir Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+402 ; "I've been thinking about changing my will", 
; added Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+403 ; "I'll be glad to help," said Sue
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+404 ; Sir Robert gave Sue a warm smile
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+405 ; "Don't worry about the reunion," said Robert. 
; "My family aren't going to bite your head off"
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+406 ; Sue smiled back at sir Robert. "I'll see you 
; at dinner", she said
 dc.b racetrackreturn,0,nullobject,nullobject
;---
kathyvisitsrobert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+410 ; "Hi, Robert," said Kathy
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+411 ; "Hello there Kathy", enthused Sir Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+412 ; "How was the journey?", continued Sir Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+413 ; "Oh, long and tiring," sighed Kathy
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+414 ; Sir Robert smirked. "That's William's 
; driving for you," he laughed
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+415 ; Sir Robert chatted to Kathy about the 
; weather.
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+416 ; Kathy muffled a yawn. "I must dash," she 
; said
 dc.b racetrackreturn,0,nullobject,nullobject
;---
anthonyvisitsrobert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+420 ; "It feels good to be here again," said 
; Anthony
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+421 ; Sir Robert smiled at Anthony
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+422 ; "How's the sports car running?", asked 
; Sir Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+423 ; "Much better since I've had it tuned," 
; replied Anthony
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+424 ; "And the cash situation?", added Sir Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+425 ; Anthony shrugged his shoulders
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+426 ; "I see," laughed Sir Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+427 ; "And I'll see you," laughed said Anthony. 
; "At dinner"
 dc.b racetrackreturn,0,nullobject,nullobject
;---
williamvisitsrobert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+430 ; "Hello there, William," said Sir Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+431 ; William smiled. "Nice to see you again, 
; father," he said
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+432 ; "Likewise," replied Sir Robert. "And how's 
 dc.w Wwaitforperiod,20
; that lovelly wife of yours"
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+433 ; "Still the same old tease," sighed William
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+434 ; Sir Robert grinned
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+435 ; "And Sue?", asked William
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+436 ; "Prettier than ever," replied Sir Robert. 
; "We're getting along fine"
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+437 ; William frowned slightly. "Well, can't hang 
; around here all day," he said
 dc.b racetrackreturn,0,nullobject,nullobject
;---
fionavisitsrobert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+440 ; "Well, father," began Fiona, "how's the 
; business going?"
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+441 ; "Good as always, Fiona," replied Sir Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+442 ; "Come on, father," frowned Fiona. "You've 
; been letting things go adrift"
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+443 ; "Ever since you met that Sue woman," added 
; Fiona
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+444 ; Sir Robert frowned
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+445 ; "I'll speak to you later, young lady", 
; growled Sir Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+446 ; Fiona shook her head in irritation
 dc.b racetrackreturn,0,nullobject,nullobject
;---
cliffordvisitsrobert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+450 ; "Good day, Sir Robert," said Clifford
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+451 ; "Well if it isn't our Clifford," enthused 
; Sir Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+452 ; "And how was the ride over," asked Sir 
; Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+453 ; "A snail would have arrived sooner," 
; protested Clifford
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+454 ; "Traffic eh?", asked Sir Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+455 ; "If you want to call it that," droned 
; Clifford
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+456 ; "Well, you're here now," concluded Sir 
; Robert
 dc.w Wwaitforperiod,20
 dc.b find,0,robert,nullobject ; find robert
 dc.w WRtMessage,rtmess+457 ; "Er, yes," said Clifford as he wandered 
; off
 dc.b racetrackreturn,0,nullobject,nullobject
;
;-------------------------------------------------------------------------
; VERA STAYS IN KITCHEN AND AWAITS GUESTS
;-------------------------------------------------------------------------
;
; while no guests are present, vera will talk to user etc.
verainkitchen
 dc.b find,0,stove,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,5,6 ; walk to cooker
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WActorSingleMessage,rtmess+500 ; turned the chicken on the spit
 dc.b animate,3
 dc.w reachupanimation+1 ; reach up north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachupanimation+1 ; reach up north
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WActorSingleMessage,rtmess+501 ; stirred a pan on the stove
 dc.b animate,3
 dc.w reachleftanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachrightanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WRtMessage,rtmess+502 ; "It's a nice day, Sam," said 
; Vera
 dc.b animate,3
 dc.w reachleftanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachrightanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WActorSingleMessage,rtmess+503 ; Vera sipped the soup
 dc.b animate,3
 dc.w reachleftanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachrightanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WRtMessage,rtmess+504 ; "Mmm, delicious," said Vera
 dc.b animate,3
 dc.w reachleftanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachrightanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WRtMessage,rtmess+505 ; "Thirsty work, this cooking," 
; said Vera
 dc.b find,0,fridge,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,13,7 ; walk to fridge
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WActorSingleMessage,rtmess+506 ; took a bottle of sherry from the 
; fridge
 dc.b animate,3
 dc.w reachleftanimation+3 ; reach east
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachrightanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WActorSingleMessage,rtmess+507 ; descreetly swigged the sherry
 dc.b animate,3
 dc.w reachupanimation+1 ; reach up north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachupanimation+1 ; reach up north
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WActorSingleMessage,rtmess+508 ; put the bottle back
 dc.b animate,3
 dc.w reachleftanimation+3 ; reach east
 dc.w Wwaitforperiod,20
 dc.b find,0,sink,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,16,9 ; walk to sink
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WActorSingleMessage,rtmess+509 ; filled the sink with water
 dc.b animate,3
 dc.w reachrightanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachrightanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WActorSingleMessage,rtmess+510 ; washed up some dishes
 dc.b animate,3
 dc.w reachleftanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachrightanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WActorSingleMessage,rtmess+511 ; said, "My, that sherry is strong"
 dc.b animate,3
 dc.w reachleftanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachrightanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WActorSingleMessage,rtmess+512 ; finished washing up
 dc.b animate,3
 dc.w reachleftanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b conditional,0,isroomemptyexceptuser,nullobject ; is vera busy with guests?
 dc.w WActorSingleMessage,rtmess+513 ; dried her hands
 dc.b animate,3
 dc.w reachrightanimation+1 ; reach north
 dc.w Wwaitforperiod,20
 dc.b racetrackreturn,0,nullobject,nullobject
;---
suevisitsvera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+520 ; "What do you want, Sue?" snapped Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+521 ; "Just thought I'd pop in," said Sue 
; apologetically
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+522 ; "Can't you see I'm busy," replied Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+523 ; "Sorry to bother you," sighed Sue
 dc.b racetrackreturn,0,nullobject,nullobject
;---
kathyvisitsvera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+530 ; "Hi, Vera", said Kathy. "What's cooking?"
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+531 ; "Today's dinner," replied Vera. "Like the 
; smell?"
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+532 ; "Smells delicious," complemented Kathy
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+533 ; "Why thank you," said Vera, "I just hope it 
; tastes as good"
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+534 ; "Oh, I'm sure it will," replied Kathy
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+535 ; "Well Vera, I'll leave you to it," added 
; Kathy
 dc.b racetrackreturn,0,nullobject,nullobject
;---
anthonyvisitsvera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+540 ; "Nice smell of cooking," said Anthony
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+541 ; "Thank you, Anthony," replied Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+542 ; "You're looking good these days," added 
; Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+543 ; "Well, the sun-tan's from the Bahama's," 
; enthused Anthony
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+544 ; "Expensive, was it?", asked Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+545 ; "Just about spent-up," laughed Anthony
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+546 ; "That's my Anthony," sniggered Vera. "Money's 
; for spending, eh?"
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+547 ; "Certainly is," said Anthony
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+548 ; "I'll leave you to the cooking," said Anthony
 dc.b racetrackreturn,0,nullobject,nullobject
;---
williamvisitsvera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+550 ; "What's for dinner?," asked William
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+551 ; "Wait and see," replied Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+552 ; "Certainly smells good," complemented 
; William
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+553 ; "Glad you think so," said Vera. "And 
; how are you today?"
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+554 ; "Top of the world," said William
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+555 ; "And your wife?" continued Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+556 ; "Kathy's fine," sighed William
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+557 ; "Does that mean she's still flirting 
; with everything in trousers?", laughed Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+558 ; Willaim frowned and decided to leave
 dc.b racetrackreturn,0,nullobject,nullobject
;---
fionavisitsvera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+560 ; "Just thought I'd see what was cooking," 
; said Fiona
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+561 ; "Can't you wait until dinner," joked 
; Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+562 ; "Is it going to be good?", asked Fiona
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+563 ; "Have I ever failed you?", replied Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+564 ; "Never," reassured Fiona
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+565 ; "I just hope there's no arguments at the 
; table," added Fiona. "You know what Kathy's like"
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+566 ; Vera shook her head. "It's about time 
; you two made up," she sighed
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+567 ; "Some chance!", huffed Fiona
 dc.b racetrackreturn,0,nullobject,nullobject
;---
cliffordvisitsvera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+570 ; "Good afternoon, Vera," said Clifford
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+571 ; "It certainly is," replied Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+572 ; "Your cooking smells lovelly," complemented 
; Clifford
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+573 ; "Flattery will get you nowhere," sighed 
; Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+574 ; "And how's your wife?", asked Vera
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+575 ; "Going strong," answered Clifford. "But I 
; wish she'd quit arguing with Kathy"
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+576 ; "So do I," agreed Vera. "But my business 
; is just in the kitchen"
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WRtMessage,rtmess+577 ; "And you're good at it," charmed Clifford
 dc.w Wwaitforperiod,20
 dc.b find,0,vera,nullobject ; find vera
 dc.w WActorSingleMessage,rtmess+578 ; smiled
 dc.b racetrackreturn,0,nullobject,nullobject
;
;-------------------------------------------------------------------------
; VARIOUS ACTIVITIES AROUND THE HOUSE (used by various npcs)
;-------------------------------------------------------------------------
;
libraryrt
 dc.b go,0,88,nullobject ; go library
 dc.w Wwaitforperiod,20
 dc.b localmove,0,4,5 ; walk to rear left bookcase
 dc.w WActorSingleMessage,rtmess+600 ; searched through the books
 dc.w Wwaitforperiod,30
 dc.b localmove,0,5,5 ; move right a bit
 dc.w WActorSingleMessage,rtmess+601 ; browsed through the book titles
 dc.w Wwaitforperiod,30
 dc.w WActorSingleMessage,rtmess+602 ; removed a book from the case
 dc.b animate,3
 dc.w reachupanimation+1 ; reach north
 dc.w WActorSingleMessage,rtmess+603 ; blew the dust off the book
 dc.b find,0,sofa,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,7,6 ; move to sofa
 dc.b animate,3
 dc.w sitanimation+3 ; sit east
 dc.w WActorSingleMessage,rtmess+604 ; skimmed through the book
 dc.b animate,3
 dc.w readanimation+5 ; read south
 dc.w Wwaitforperiod,30
 dc.w WActorSingleMessage,rtmess+605 ; said, "what a boring book"
 dc.b animate,1
 dc.w standupanimation+5 ; stand up south
 dc.b localmove,0,5,5 ; walk to rear left bookcase
 dc.w WActorSingleMessage,rtmess+606 ; put back the book
 dc.b animate,3
 dc.w reachupanimation+1 ; reach north
 dc.b localmove,0,13,5 ; walk to rear right bookcase
 dc.w WActorSingleMessage,rtmess+607 ; searched through the books
 dc.w Wwaitforperiod,30
 dc.b localmove,0,12,5 ; move left a bit
 dc.w Wwaitforperiod,20
 dc.w WActorSingleMessage,rtmess+608 ; pulled out a book
 dc.b animate,3
 dc.w reachleftanimation+1 ; reach north
 dc.w WActorSingleMessage,rtmess+609 ; said, "Hmm, this looks 
; interesting"
 dc.b find,0,sofa,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,4,6 ; move to chair
 dc.b animate,3
 dc.w sitanimation+3 ; sit east
 dc.w WActorSingleMessage,rtmess+610 ; began reading the book
 dc.b animate,3
 dc.w readanimation+5 ; read south
 dc.w Wwaitforperiod,75
 dc.w WActorSingleMessage,rtmess+611 ; read the book
 dc.b animate,3
 dc.w readanimation+5 ; read south
 dc.w Wwaitforperiod,75
 dc.w WActorSingleMessage,rtmess+612 ; folded over a page in the book
 dc.b animate,3
 dc.w readanimation+5 ; read south
 dc.w Wwaitforperiod,30
 dc.w WActorSingleMessage,rtmess+613 ; said, "I'll finish this later"
 dc.b animate,1
 dc.w standupanimation+5 ; stand up south
 dc.b localmove,0,12,5 ; walk to rear right bookcase
 dc.w WActorSingleMessage,rtmess+614 ; crammed the book into the case
 dc.b animate,3
 dc.w reachleftanimation+1 ; reach north
 dc.b racetrackreturn,0,nullobject,nullobject
;---
leftgardenrt
 dc.b go,0,5,nullobject ; go water garden
 dc.w Wwaitforperiod,20
 dc.b localmove,0,9,6 ; walk to bridge
 dc.w WActorSingleMessage,rtmess+620 ; stood on the bridge admiring 
; the fish
 dc.w Wwaitforperiod,30
 dc.w WActorSingleMessage,rtmess+621 ; picked up a few pebbles
 dc.b animate,3
 dc.w reachdownanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.w WActorSingleMessage,rtmess+622 ; tossed a pebble into the water
 dc.b animate,3
 dc.w reachleftanimation+5 ; reach south
 dc.w Wwaitforperiod,30
 dc.b animate,3
 dc.w reachleftanimation+5 ; reach south
;
 dc.b go,0,44,nullobject ; go left side garden
 dc.w Wwaitforperiod,20
 dc.b localmove,0,5,7 ; walk to chair
 dc.b animate,3
 dc.w sitanimation+5 ; sit south
 dc.w WActorSingleMessage,rtmess+623 ; sat back and relaxed
 dc.w Wwaitforperiod,75
 dc.w WActorSingleMessage,rtmess+624 ; yawned tiredly
 dc.w Wwaitforperiod,75
 dc.w WActorSingleMessage,rtmess+625 ; said, "I'd better get up before 
; I nod off"
 dc.b animate,1
 dc.w standupanimation+1 ; stand up south
;
 dc.b go,0,46,nullobject ; go back left garden
 dc.w Wwaitforperiod,20
 dc.b localmove,0,3,9 ; walk to flowers
 dc.w WActorSingleMessage,rtmess+626 ; picked a flower
 dc.b animate,3
 dc.w reachdownanimation+7 ; reach west
 dc.w Wwaitforperiod,20
 dc.w WActorSingleMessage,rtmess+627 ; sniffed the flower admirably
;
 dc.b go,0,48,nullobject ; go back of house
 dc.w Wwaitforperiod,20
 dc.b localmove,0,16,8 ; walk to gargoyle
 dc.w WActorSingleMessage,rtmess+628 ; pulled a face at the gargoyle
 dc.b animate,3
 dc.w kissanimation+1 ; kiss north (can't see)
 dc.b racetrackreturn,0,nullobject,nullobject
;---
rightgardenviasculleryrt
 dc.b go,0,82,nullobject ; scullery
 dc.b go,0,40,nullobject ; right side garden
 dc.w WRtGosub,rightgarden2-list5 ; do north part first
 dc.w WRtGosub,rightgarden1-list5 ; and then south part
 dc.b go,0,40,nullobject ; right side garden
 dc.b go,0,82,nullobject ; scullery
 dc.b racetrackreturn,0,nullobject,nullobject
;
rightgardenrt
 dc.w WRtGosub,rightgarden1-list5 ; do south part first 
 dc.w WRtGosub,rightgarden2-list5 ; and then north part
 dc.b racetrackreturn,0,nullobject,nullobject
;
rightgarden1
 dc.b go,0,43,nullobject ; go to lawn
 dc.w Wwaitforperiod,20
 dc.b localmove,0,12,6 ; walk to sundial
 dc.w WActorSingleMessage,rtmess+630 ; checked the time on the sundial
 dc.b animate,3
 dc.w reachleftanimation+5 ; reach south
;
 dc.b go,0,39,nullobject ; go front right garden
 dc.w Wwaitforperiod,20
 dc.b localmove,0,14,7 ; walk to chair
 dc.w WActorSingleMessage,rtmess+631 ; said, "I could do with a rest"
 dc.b animate,3
 dc.w sitanimation+5 ; sit south
 dc.w Wwaitforperiod,75
 dc.w WActorSingleMessage,rtmess+632 ; sat back admiring the garden
 dc.w Wwaitforperiod,75
 dc.w WActorSingleMessage,rtmess+633 ; said, "I wonder how the veg is 
; doing"
 dc.b animate,1
 dc.w standupanimation+1 ; stand up south
 dc.b racetrackreturn,0,nullobject,nullobject
;
rightgarden2
 dc.b go,0,40,nullobject ; go veg garden
 dc.w Wwaitforperiod,20
 dc.b localmove,0,6,6 ; walk to peas
 dc.w WActorSingleMessage,rtmess+634 ; reached for a pea pod
 dc.b animate,3
 dc.w reachrightanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.w WActorSingleMessage,rtmess+635 ; popped open a pea pod
 dc.w Wwaitforperiod,20
 dc.w WActorSingleMessage,rtmess+636 ; ate some peas
;
 dc.b go,0,42,nullobject ; go back right garden
 dc.w Wwaitforperiod,20
 dc.b find,0,beehive,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,15,8 ; walk to beehive
 dc.w WActorSingleMessage,rtmess+637 ; peered briefly into the beehive
 dc.b racetrackreturn,0,nullobject,nullobject
;---
studyrt
 dc.b go,0,81,nullobject ; go to study
 dc.w Wwaitforperiod,20
 dc.b localmove,0,5,10 ; walk to sofa (THERE IS NO SOFA IN HERE YET!)
 dc.b animate,3
 dc.w sitanimation+3 ; sit east
 dc.w WActorSingleMessage,rtmess+640 ; opened up a newspaper
 dc.b animate,3
 dc.w readanimation+3 ; read east
 dc.w Wwaitforperiod,75
 dc.w WActorSingleMessage,rtmess+641 ; read the newspaper
 dc.b animate,3
 dc.w readanimation+3 ; read east
 dc.w Wwaitforperiod,75
 dc.w WActorSingleMessage,rtmess+642 ; sighed and said, "The trains 
; are still on strike"
 dc.b animate,3
 dc.w readanimation+3 ; read east
 dc.w Wwaitforperiod,75
 dc.w WActorSingleMessage,rtmess+643 ; browsed through the horoscopes 
; and laughed
 dc.b animate,3
 dc.w readanimation ; read east
 dc.w Wwaitforperiod,75
 dc.w WActorSingleMessage,rtmess+644 ; put away the newspaper
 dc.b animate,1
 dc.w standupanimation+1 ; stand up east
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; taste various vintages etc. in the drawing room
drawingrt
 dc.w WActorSingleMessage,rtmess+650 ; said "I think I'll go and have a 
; small sherry"
 dc.b go,0,79,nullobject ; go to drawing room
 dc.w Wwaitforperiod,20
 dc.b find,0,table,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,8,7 ; walk to table
 dc.w WActorSingleMessage,rtmess+651 ; searched through some bottles
 dc.b animate,3
 dc.w reachleftanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachrightanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.w WActorSingleMessage,rtmess+652 ; poured a glass of sherry
 dc.b animate,3
 dc.w reachleftanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachrightanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.w WActorSingleMessage,rtmess+653 ; sniffed the sherry
 dc.b animate,3
 dc.w reachrightanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachleftanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.w WActorSingleMessage,rtmess+654 ; said, "Hmm, 1870 vintage"
 dc.b animate,3
 dc.w reachrightanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachleftanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.w WActorSingleMessage,rtmess+655 ; sipped the sherry
 dc.b animate,3
 dc.w reachrightanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachrightanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.w WActorSingleMessage,rtmess+656 ; said, "Heart warming stuff"
 dc.b animate,3
 dc.w reachleftanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.b animate,3
 dc.w reachrightanimation+5 ; reach south
 dc.w Wwaitforperiod,20
 dc.w WActorSingleMessage,rtmess+657 ; finished the drink and said, 
; "Very nice sherry indeed"
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; upstairs loo
toiletrt
 dc.w WActorSingleMessage,rtmess+660 ; said "Excuse me, but nature calls"
gotoilet
 dc.b go,0,63,nullobject
 dc.b conditional,0,user,nullobject ; user on toilet?
 dc.w WRtGoto,somebodyontoilet-list5
 dc.b conditional,0,isroomempty,nullobject ; any guests on toilet?
; toilet is vacant
 dc.w WRtGoto,HaveACrapOrWhatever1-list5
;
somebodyontoilet
 dc.w WActorSingleMessage,rtmess+661 ; said "Oh, do excuse me!"
 dc.b go,0,71,nullobject ; go outside toilet
 dc.w WRtMessage,rtmess+662 ; "Where are your manners?", came an angry voice 
; from the bathroom
 dc.w WRtGoto,gotoilet1-list5 ; try downstairs loo
;---
; downstairs loo
toiletrt1
 dc.w WActorSingleMessage,rtmess+660 ; said "Excuse me, but nature calls"
gotoilet1
 dc.b go,0,65,nullobject
 dc.b conditional,0,user,nullobject ; user on toilet?
 dc.w WRtGoto,somebodyontoilet1-list5
 dc.b conditional,0,isroomempty,nullobject ; any guests on toilet?
 dc.w WRtGoto,haveacraporwhatever1-list5
 dc.w WRtGoto,somebodyontoilet1-list5
;
; toilet is vacant
HaveACrapOrWhatever1
 dc.b find,0,toilet,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,15,9 ; walk over to the toilet
 dc.b animate,3
 dc.w SitAnimation+7 ; sit west
;
; Complain if user enters
 dc.b conditional,0,user,nullobject
 dc.w WRtGosub,PlayerWatchesActorShitting-list5
 dc.w WWaitForPeriod,50
 dc.b conditional,0,user,nullobject
 dc.w WRtGosub,PlayerWatchesActorShitting-list5
 dc.w WWaitForPeriod,50
 dc.b conditional,0,user,nullobject
 dc.w WRtGosub,PlayerWatchesActorShitting-list5
 dc.w WWaitForPeriod,50
 dc.b conditional,0,user,nullobject
 dc.w WRtGosub,PlayerWatchesActorShitting-list5
 dc.w WWaitForPeriod,50
 dc.b conditional,0,user,nullobject
 dc.w WRtGosub,PlayerWatchesActorShitting-list5
 dc.b animate,1
 dc.w StandupAnimation+1 ; stand up east
 dc.b racetrackreturn,0,nullobject,nullobject
;
; player walks in while actor is having a crap!
PlayerWatchesActorShitting
; INTERCEPT THIS MESSAGE TO MAKE PLAYER LOSE POINTS
 dc.w WRtActorVaryMessage,rtmess+670 ; shouted, "Hey! Do you mind?"
; yelled, "Get out!"
; shrieked, "Don't you have any manners?"
; shouted, "Why don't you try knocking!"
; cursed, "Get out! I'm busy!"
 dc.w WWaitForPeriod,50
 dc.b conditional,0,user,nullobject ; user still here?
 dc.w WRtGoto,PlayerWatchesActorShitting-list5
 dc.b racetrackreturn,0,nullobject,nullobject
;
somebodyontoilet1
 dc.w WActorSingleMessage,rtmess+661 ; said "Oh, do excuse me!"
 dc.b go,0,83,nullobject ; go outside toilet
 dc.w WRtMessage,rtmess+662 ; "Where are your manners?", came an angry voice 
; from the bathroom
 dc.w WRtGoto,gotoilet-list5 ; try upstairs loo
;---
; Somewhat complicated and critically timed pool game...
; * Player 1 breaks & loses, Player 2 always wins.
;
shottime equ 20 ; rough duration for each localmove+shot animation
;
player1playspool
 dc.w WActorSingleMessage,rtmess+1100 ; said, "I'll break"
 dc.b localmove,0,4,7 ; left of table
 dc.b Animate,3
 dc.w poolanimation+3 ;  shoot east
 dc.w Wwaitforperiod,shottime-2 ; wait for player 2 to take his shot
 dc.w WActorSingleMessage,rtmess+1102 ; said, "Well played"
 dc.b localmove,0,15,7 ; right of table
 dc.b Animate,3
 dc.w poolanimation+7 ; shoot west
 dc.w Wwaitforperiod,shottime-2 ; wait for player 2 to take his shot
 dc.w WActorSingleMessage,rtmess+1104 ; said, "You play well"
 dc.b localmove,0,9,8 ; front of table
 dc.b Animate,3
 dc.w poolanimation+1 ; shoot north
 dc.w Wwaitforperiod,shottime-2 ; wait for player 2 to take his shot
 dc.w WActorSingleMessage,rtmess+1106 ; said, "Oh, bravo"
 dc.b localmove,0,4,7 ; left of table
 dc.b Animate,3
 dc.w poolanimation+3 ; shoot east
 dc.w Wwaitforperiod,shottime-2 ; wait for player 2 to take his shot
 dc.w WActorSingleMessage,rtmess+1108 ; cursed his cue
 dc.b localmove,0,15,7 ; right of table
 dc.b Animate,3
 dc.w poolanimation+7 ; shoot west
 dc.w Wwaitforperiod,shottime-2 ; wait for player 2 to take his last shot
 dc.w WActorSingleMessage,rtmess+1110 ; sighed, "You've thrashed me again"
 dc.b racetrackreturn,0,nullobject,nullobject
;---
player2playspool
 dc.w Wwaitforperiod,shottime ; wait for player 1 to take his first shot
 dc.w WActorSingleMessage,rtmess+1101 ; said, "Good break"
 dc.b localmove,0,9,8 ; front of table
 dc.b Animate,3
 dc.w poolanimation+1 ; shoot north
 dc.w Wwaitforperiod,shottime ; wait for player 1 to take his shot
 dc.w WActorSingleMessage,rtmess+1103 ; said, "Unlucky"
 dc.b localmove,0,4,7 ; left of table
 dc.b Animate,3
 dc.w poolanimation+3 ; shoot east
 dc.w Wwaitforperiod,shottime ; wait for player 1 to take his shot
 dc.w WActorSingleMessage,rtmess+1105 ; said, "Good shot"
 dc.b localmove,0,15,7 ; right of table
 dc.b Animate,3
 dc.w poolanimation+7 ; shoot west
 dc.w Wwaitforperiod,shottime ; wait for player 1 to take his shot
 dc.w WActorSingleMessage,rtmess+1107 ; sighed, "How could you miss?"
 dc.b localmove,0,9,8 ; front of table
 dc.b Animate,3
 dc.w poolanimation+1 ; shoot north
 dc.w Wwaitforperiod,shottime ; wait for player 1 to take his shot
 dc.w WActorSingleMessage,rtmess+1109 ; laughed, "Having trouble with the chalk?"
 dc.b localmove,0,15,7 ; right of table
 dc.b Animate,3
 dc.w poolanimation+7 ; west
 dc.b racetrackreturn,0,nullobject,nullobject
;
;-------------------------------------------------------------------------
; VARIOUS ACTIVITIES AFTER THE MURDER
;-------------------------------------------------------------------------
;
; Jarvis phone's the police
JarvisGetPolice
 dc.b go,0,86,nullobject ; go to hall
 dc.b iAnswer,0,telephone,nullobject ; pick up receiver
;
; Message 3050 triggers the condition, 'JarvisPhonedPolice'
;
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+3050 ; "Hello," said Jarvis, "We have an 
; emergency..."
 dc.w Wwaitforperiod,30
 dc.w WRtMessage,rtmess+3051 ; "Grange Manor," said Jarvis into the 
; phone
 dc.w Wwaitforperiod,30
 dc.w WRtMessage,rtmess+3052 ; "Thank you," said Jarvis as he replaced 
; the receiver
 dc.b animate,3
 dc.w DropPhone
 dc.b racetrackreturn,0,nullobject,nullobject
;---
InspectorArrives
 dc.b conditional,0,JarvisPhonedPolice,nullobject ; jarvis phoned yet?
 dc.w WRtGoto,IA1-list5
 dc.b wait,0,nullobject,nullobject
 dc.w WRtGoto,InspectorArrives-list5
;
IA1
 dc.w Wwaitforperiod,250 ; journey time
 dc.b go,0,81,nullobject ; go to study
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,rtmess+3060 ; "Hello, I'm Inspector Gormley", said 
; the Inspector.
 dc.w Wwaitforperiod,30
 dc.w WRtMessage,rtmess+3061 ; "The city police should be here soon, 
; but I'll keep an eye on things until then", said the Inspector
 dc.w Wwaitforperiod,30
 dc.b racetrackreturn,0,nullobject,nullobject
;---
; Guests lounge around after the murder, and are obedient to 
; commands given by the player
PMRacetrack181
 dc.b go,0,81,nullobject ; go to study
 dc.w WRtGoto,PmRacetrack1-list5
PMRacetrack179
 dc.b go,0,79,nullobject ; go to study
PMRacetrack1
;
; Group message 3040 makes the corresponding npc obedient to FOLLOW 
; commands etc.
;
 dc.w WRtActorVaryMessage,rtmess+3040
; puffed a cigarette nervously
; took a sip of brandy
; said, "How unfortunate,"
; looked down solemnly
; speculated about the murder
;
PMRt1
 dc.b conditional,0,inspector,nullobject
 dc.b racetrackreturn,0,nullobject,nullobject
 dc.b conditional,251,random,15
 dc.w WRtActorVaryMessage,rtmess+3040
 dc.b wait,0,nullobject,nullobject
 dc.b conditional,251,random,15
 dc.b animate,3
 dc.w reachrightanimation+5 ; reach south
 dc.b wait,0,nullobject,nullobject
 dc.w WRtGoto,PMRt1-list5
;
;-------------------------------------------------------------------------
; VARIOUS PLAYER DISTRACTION RACETRACKS
;-------------------------------------------------------------------------
;
; phone calls from home
distract0
 dc.b iAnswer,0,telephone,nullobject ; pick up receiver
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+0 ; "Hello dear. Why aren't you back home?"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+100 ; "On a lucrative job, my love", said Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract1
 dc.b iAnswer,0,telephone,nullobject ; pick up receiver
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+1 ; "Hello love. Where did you put the remote 
; control?"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+101 ; "You had it last", snapped Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract2
 dc.b iAnswer,0,telephone,nullobject ; pick up receiver
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+2 ; "Hi dear. Where did you hide my dentures?"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+102 ; Sam laughed
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract3
 dc.b iAnswer,0,telephone,nullobject ; pick up receiver
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+3 ; "Hello darling. Now where did you put the 
; spaghetti jar?"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+103 ; "I haven't a clue", replied Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract4
 dc.b iAnswer,0,telephone,nullobject ; pick up receiver
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+4 ; "Hello daddy"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+104 ; "Hello kiddo!", enthused Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract5
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+5 ; "Hello dear. Your parole officer wants 
; a word"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+105 ; "I'm not here!", stressed Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract6
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+6 ; "Hi there love. A couple of policemen 
; called in"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+106 ; "I'll contact the station!", said Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract7
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+7 ; "Happy birthday daddy!"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+107 ; "But it's not my birthday!", said Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract8
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+8 ; "Hello dear. Have you remembered our 
; anniversary?"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+108 ; "Oops!", said Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract9
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+9 ; "When will you be home love?"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+50 ; "Possibly tomorrow!", winced Sam
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+109 ; "Your dinner's in the dog!"
 dc.b racetrackreturn,0,nullobject,nullobject
;
; phone calls from office
distract10
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+10 ; "Someone called Anita just 'phoned. Shall I 
; give her your number there?"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+110 ; "Hell, no," said Sam, "And don't tell my 
; wife about this either!"
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract11
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+11 ; "The VAT inspectors are tramping all 
; over the place!"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+111 ; "Stall them!", replied Sam, "Take them to 
; dinner or something"
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract12
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+12 ; "Mr. Dawson's been in again after 
; the rent"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+112 ; "Oh, er, tell him I'll pay up tomorrow"
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract13
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+13 ; "How about paying me?!"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+113 ; "Tommorow morning, Miss Funnyfanny", 
; replied Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract14
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+14 ; "The martian ambassador is here. He insists 
; on talking to the boss"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+114 ; "Tell him I've gone to Pluto for the 
; day," replied Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract15
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+15 ; "Al asks if you're interested in a dozen 
; mixed video recorders"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+115 ; "Tell him I'll have them all, apart from 
; the Amstrud ones, of course", replied Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract16
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+16 ; "The baliffs are here! What shall 
; I do?"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+116 ; "Put something heavy against the door," 
; advised Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract17
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+17 ; "Another job's come in, Sam"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+117 ; "I'm busy," replied Sam, "It'll have to 
; wait"
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract18
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+18 ; "If it's okay with you, Sam, I'd like 
; to take the rest of the day off"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+118 ; "Certain;y not!", snapped Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
distract19
 dc.b iAnswer,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+19 ; "Oops, sorry. You told me not to call there 
; didn't you"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+119 ; "That's right," answered Sam, "So goodbye!"
 dc.b racetrackreturn,0,nullobject,nullobject
;
; events at the manor
;
; prowler in garden
distract20
 dc.b localmove,0,12,6 ; walk to sundial
 dc.w WRtMessage,dmess+20 ; Sam looked around for the prowler
 dc.b animate,1
 dc.w standinganimation+3 ; face east
 dc.w Wwaitforperiod,20
 dc.b animate,1
 dc.w standinganimation+7 ; face west
 dc.w Wwaitforperiod,20
 dc.b animate,1
 dc.w standinganimation+5 ; south
 dc.w WRtMessage,dmess+120 ; "There's nobody here," sighed Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
; smoke in kitchen
distract21
 dc.b conditional,0,vera,nullobject ; is vera here?
 dc.w WRtGoto,d21verahere-list5
 dc.b find,0,stove,nullobject ;; GMJ 25/9/89 ;; dc.b localmove,0,5,6 ; walk to cooker
 dc.w WRtMessage,dmess+21 ; "Vera's left something burning!", said 
; Sam
 dc.b animate,1
 dc.w reachleftanimation+1 ; reach north
 dc.b animate,1
 dc.w reachrightanimation+1 ; reach north
 dc.b animate,1
 dc.w reachleftanimation+1 ; reach north
 dc.w WRtGoto,d21ret-list5
d21verahere
 dc.b find,0,vera,nullobject ; walk over to vera
 dc.w WRtMessage,dmess+70 ; "Vera," sighed Sam, "I wish you 
; wouldn't burn the food"
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+71 ; "Who's the cook?" snapped Vera. "Me or 
; you?"
 dc.w Wwaitforperiod,20
d21ret
 dc.w WRtMessage,dmess+121 ; "I don't know," sighed Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
; salesmen at door
distract22
 dc.b localmove,0,9,9 ; walk to door
 dc.w WRtMessage,dmess+22 ; "May I interest you in some window 
; locks?", said the Salesman outside
 dc.w Wwaitforperiod,20
 dc.b animate,1
 dc.w reachleftanimation+1 ; reach north
 dc.w WRtMessage,dmess+122 ; "Get lost," said Sam, closing the 
; door
 dc.b racetrackreturn,0,nullobject,nullobject
;
; policemen at door
distract23
 dc.b localmove,0,9,9 ; walk to door
 dc.w WRtMessage,dmess+23 ; "Hello, hello, hello," said the policemen 
; outside
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+72 ; "Er, hello to you too," answered Sam
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+73 ; "Saw your car," said a policeman, "Thought 
; we'd visit. Old times sake, eh"
 dc.w Wwaitforperiod,20
 dc.b animate,1
 dc.w reachleftanimation+1 ; reach north
 dc.w WRtMessage,dmess+123 ; "Yes, well I'm very busy," said Sam, closing 
; the door
 dc.b racetrackreturn,0,nullobject,nullobject
;
; go to bathroom
distract24
 dc.b localmove,0,15,8 ; walk to front of room
 dc.w WRtMessage,dmess+124 ; "Ah, that's better," sighed Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
; car light's on
distract25
 dc.b localmove,0,8,8 ; walk forward a bit
 dc.b animate,3
 dc.w reachrightAnimation+5 ; make sure we're facing south
 dc.w WRtMessage,dmess+25 ; Sam looked at his car across the road
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+125 ; "Blast!", said Sam, "It's only the 
; sunlight reflecting in them"
 dc.b racetrackreturn,0,nullobject,nullobject
;
; phone office
distract26
 dc.b iDial,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+26 ; "Hello, Miss Funnyfanny," said Sam. 
; "Has my parcel arrived yet?"
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+74 ; "Sorry Sam," came the reply
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+126 ; "Phone me when it does," said Sam, "Bye!"
 dc.b racetrackreturn,0,nullobject,nullobject
;
; phone home
distract27
 dc.b iDial,0,telephone,nullobject ; walk to telephone
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+27 ; "Hello dear," said Sam, "Would you check 
; that I turned the taps off"
 dc.w Wwaitforperiod,20
; messages>100 used as terminators
 dc.w WRtMessage,dmess+127 ; "Save your breath," came the reply, 
; "The house is flooded!"
 dc.b racetrackreturn,0,nullobject,nullobject
;
; car unlocked
distract28
 dc.b localmove,0,8,8 ; walk forward a bit
 dc.b animate,3
 dc.w reachrightAnimation+5 ; make sure we're facing south
 dc.w WRtMessage,dmess+28 ; Sam looked at his car across the road
 dc.w Wwaitforperiod,20
 dc.w WRtMessage,dmess+128 ; "Silly me!", said Sam, "It was locked 
; after all"
 dc.b racetrackreturn,0,nullobject,nullobject
;
; dog barking outside
distract29
 dc.b localmove,0,9,5 ; walk to bridge
 dc.w WRtMessage,dmess+29 ; Sam looked around for the dog
 dc.b animate,1
 dc.w standinganimation+1 ; face north
 dc.w Wwaitforperiod,20
 dc.b animate,1
 dc.w standinganimation+7 ; face west
 dc.w Wwaitforperiod,20
 dc.b animate,1
 dc.w standinganimation+5 ; south
 dc.w WRtMessage,dmess+129 ; "It must have run off," said Sam
 dc.b racetrackreturn,0,nullobject,nullobject
;
;---
;
 even
reversaltable
; part of list5
; gives reverse directions for directions
 dc.b 0,5,4,7,2,1,8,3,6,0,0,0,0,0,15,14 ; compass directions
